Как подготовить .txt с двойными кавычками, вкладками и двойными кавычками для импорта в Excel с использованием Java - PullRequest
0 голосов
/ 19 октября 2018

У меня есть текстовый файл с разделителями табуляции (в основном CSV), каждое значение которого заключено в двойные кавычки (") и разделены табуляцией.

Большинство значений являются строками и могут содержать вкладки, простые кавычки ('), двойные кавычки (") и запятые или любой символ, действительно.

Я хотел бы импортировать его в Excel, используя кнопку" Данные / Из текста или CSV "в Excel, но у меня возникла проблема с анализомв какой-то ситуации.В частности, когда значение заканчивается двойной кавычкой.(Пример: ... "value1" "tab" value2 "... помещает следующий текст в одну ячейку: value1" value2 ")

Я получил Java подпрограмму, которая правильно анализирует.txt и разбивает каждую строку в список (а не на вкладку, поскольку каждая строка может иметь различное количество значений). Если уместно, у меня есть доступ к этому коду.

Мой вопрос: Какможно вывести файл toBePutInExcel.txt, который будет проанализирован в обычном порядке, поместив каждое значение моего списка в разные ячейки и сохранив вкладки, простые кавычки, двойные кавычки и запятые, которые могут быть в этих строках?

Я пытался избежать внутренних кавычек, но такие случаи, как вкладка "v1 \" "v2", все еще приводят в замешательство Excel.

Примечание: теоретически любой текст может быть в текстах, поэтому я предпочел бы иметь "избегать "стратегии, а не принимать странный разделитель.(Мои данные могут быть более странными)

NB2: я не могу использовать стратегию "фиксированной ширины", поскольку значения сильно различаются по размеру, а для выравнивания по более длинному потребуется намного больше места на диске.

NB3: я видел этот и подобные вопросы, но мои данные могут содержать запятые, вкладки и все остальное.Проблема заключалась в пробелах после разделяющих запятых, но это не та проблема, которая у меня есть.

NB4: У меня нет ограничений на форматирование.Источник: UTF-8.

Есть ли способ заставить Excel анализировать такие строки как обычно?

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

После этого я столкнулся с подобными проблемами форматирования (поскольку CSV не определен строго, как я думаю). Используются различные соглашения в зависимости от того, поступил ли файл из Excel, MySQL и т. Д. Некоторые файлы заключают в кавычки все поля, другие - только поля с небезопасными символами и т. Д. Все эти взаимно несовместимые варианты называются "CSV ", с бесконечными проблемами совместимости.

Обработчик Apache CSV понимает различные соглашения (MySQL в моем случае), поэтому преобразование и синтаксический анализ просты, как и должно быть.

0 голосов
/ 19 октября 2018

Первый результат в Google, который я обнаружил, был таким (может быть полезным): https://gpdb.docs.pivotal.io/43190/admin_guide/load/topics/g-escaping-in-csv-formatted-files.html

Значение данных с символом запятой, которое является частью данных, заключено в двойные кавычки.Двойные кавычки, являющиеся частью данных, экранируются двойными кавычками, даже если значение поля заключено в двойные кавычки.

Предположим, что

  • запятая (,) - это символ-разделитель значений
  • двойная кавычка (") - это escape-символ

Мы хотим импортировать следующие значения в Excel:

  • test "a, b"
  • test 2
  • test "5"
  • test 2,3

Для этого CSV-файл должен выглядеть следующим образом:

"test ""a,b""", test 2, test "5","test 2,3"

Я думаю, что вы сможете решить вашу проблему здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...