Создание CSV-файла со специальными символами в полях

Я искал похожие вопросы о stackoverflow, но я их не нашел. Я хочу экспортировать таблицу в формате CSV, чтобы ее можно было импортировать в Excel. Каждая ячейка содержит текст, и каждая строка имеет одинаковое количество столбцов. Формат, который я пробовал, следующий:

"d1"|"d2"|"d3"|"d4" 

где d1, d2, d3, d4 – исходные строки, которые я хочу поместить в каждую ячейку. У меня есть следующие проблемы:

  1. | могут содержаться в данных. Это действительно проблема? Может быть, не потому, что у меня есть двойные кавычки вокруг строк. Может быть, я мог бы даже использовать запятые, и это не изменит ситуацию.
  2. «Само может быть содержаться в данных. Должен ли я каким-то образом избежать этого? Мое текущее решение состоит в том, чтобы удалить ведущие и завершающие двойные кавычки из исходной строки перед тем, как поместить мои двойные кавычки вокруг него. Кажется, что это работает, но я думаю избежание внутренних двойных кавычек было бы более чистым. Знаете ли вы, как это сделать?
  3. Данные также могут содержать символы новой строки. Я бы хотел, чтобы Excel хранил данные в одной ячейке и форматировал текст внутри этой ячейки в соответствии с новыми линиями. На данный момент это не так: Excel интерпретирует новые строки как завершение записи и добавляет дополнительные строки в импортированную таблицу.

У вас есть идеи, как исправить вышеупомянутые проблемы? Есть ли онлайн-документация по этим конкретным проблемам? Я искал со вчерашнего дня, но ничего не нашел.

Excel поддерживает новые строки в значениях. Например, используя пользовательский интерфейс Excel, вы можете получить "foo\n\bar\nbaz" в ячейку, набрав Alt-Enter для каждого разрыва строки.

Сложная вещь в Excel заключается в том, что в местах, где запятая используется как десятичная точка, Excel использует двоеточие в качестве разделителя полей. Нет универсального / международного формата, который будет читать любой Excel.

Я был бы очень удивлен, если бы в Java не было пакета для чтения / записи CSV-файлов. У Python есть тот, который позволяет вам указать разделитель, цитировать char, разделитель записей и т. Д. Как на входе, так и на выходе.

Однако, если вы хотите написать свой собственный, следуйте этому псевдокоду для каждой строки, которую вы хотите написать:

 for each field in the row: if field contains quotechar: double all quotechars in field field = quotechar + field + quotechar else if field contains delimiter, CR, or LF: field = quotechar + field + quotechar else: avoid waste of space and ugly visual impact by NOT doing unneeded quoting join field strings separated by delimiter append CR LF write the row string using binary mode (so Windows runtime doesn't give you 2xCR) 

Обратите внимание, что (1) все вышесказанное основано на 8-битных символах (2). Я избегал использования двусмысленного термина «новая линия».

Я считаю, что CSV лучше всего делать с разделением запятой и цитированием значений, поэтому запятые в значениях неверно истолковываются. Цитирование цитат выполняется с двойным кавычками. Итак, следующие четыре значения:

 one two three with "quoted" value four 

будет выглядеть так:

 one,two,"three with ""quoted"" value",four 

Я не считаю, что стандартные реализации CSV могут поддерживать новые строки в значениях; особенно в Excel. Попробуйте создать ячейку в Excel с новыми символами (это возможно?) И сохранить как CSV, чтобы убедиться, что это работает.

http://en.wikipedia.org/wiki/Comma-separated_values

  • Работа с Unicode в VBA StrConv
  • Как указать кодировку в .NET Interop.Excel.Workbooks.OpenText
  • PHP. Преобразование таблицы HTML в CSV добавляет пустые строки.
  • Как исправить кодировку при создании файла excel из данных «utf-8» с помощью python
  • Байт Заказать Отметить, чтобы читать файлы UTF-8 cvs и excel
  • VBA - кодирование, формат .csv и изменение разделителей
  • 'latin-1' кодек не может кодировать символ u '\ u2014' в позиции 23: порядковый номер не в диапазоне (256)
  • Вставка шрифта MLAthira malayalam в базе данных Mysql
  • Специальные символы не отображаются правильно при записи в файл csv в excel
  • как экспортировать файл excel в csv с кодом «|» и кодом utf-8
  • читать твиты, извлеченные с помощью python
  • Interesting Posts

    При создании функции MATCH, такой как функция FIND

    Серия Python – Extra Excel с win32com

    Excel VBA Autofill Destination

    Excel: печатные листы, выбранные пользователем в один PDF-файл

    Блокировка выбора фильтра в таблице excel с помощью VBA

    Получение вызова отклоняется ошибкой вызываемого абонента, иногда, когда я пытаюсь открыть excel из веб-приложения

    фильтровать по критериям, а затем копировать и вставлять снизу на том же рабочем листе

    Открытие шаблона excel для редактирования в VB.NET с помощью Process.Start ()

    Копирование и вставка содержимого выбранных рабочих листов в новый рабочий лист

    TIMEVALUE в Excel конвертирует более 24 часов

    Как найти несколько значений в столбце

    Как добавить границы к таблице в листе excel, созданном pandas dataframe?

    добавление элементов из списка в новый список (MS Excel)

    Лучший способ превратить выбранные данные в таблицу Excel, используя asp.net

    Excel – удалить все строки «один-к-одному» между двумя столбцами

    Давайте будем гением компьютера.