Excel в CSV с кодировкой UTF8 - PullRequest
567 голосов
/ 19 ноября 2010

У меня есть файл Excel, содержащий несколько испанских символов (тильды и т. Д.), Которые мне нужно преобразовать в файл CSV для использования в качестве файла импорта.Однако, когда я делаю Save As CSV, он искажает «специальные» испанские символы, которые не являются символами ASCII.Похоже, что это также происходит с левыми и правыми кавычками и длинными черточками, которые, похоже, исходят от исходного пользователя, создающего файл Excel в Mac.

Поскольку CSV - это просто текстовый файл, я уверен, чтообрабатывать кодировку UTF8, поэтому я предполагаю, что это ограничение Excel, но я ищу способ перейти из Excel в CSV и сохранить нетронутыми символы, не входящие в ASCII.

Ответы [ 36 ]

8 голосов
/ 08 октября 2013

Для тех, кто ищет полностью программное (или, по крайней мере, серверное) решение, я имел большой успех, используя инструмент catlsoc xls2csv.

Установка catdoc:

apt-get install catdoc

Doпреобразование:

xls2csv -d utf-8 file.xls > file-utf-8.csv 

Это невероятно быстро.

Обратите внимание, что важно включить флаг -d utf-8, иначе он будет кодировать выходные данные в кодировке cp1252 по умолчанию,и вы рискуете потерять информацию.

Обратите внимание, что xls2csv также работает только с файлами .xls, он не работает с файлами .xlsx.

7 голосов
/ 17 февраля 2014

Как насчет использования Powershell.

Get-Content 'C:\my.csv' | Out-File 'C:\my_utf8.csv' -Encoding UTF8
6 голосов
/ 08 января 2017

Самый простой способ: Нет необходимости Открыть офис и Google Docs

  1. Сохраните ваш файл как "текстовый файл Unicode";
  2. теперь у вас есть текстовый файл Unicode
  3. откройте его с помощью «блокнота» и «Сохранить как», выбрав «utf-8» или другая кодовая страница, которую вы хотите
  4. переименовать расширение файла из "txt" в "csv". В результате получится CSV-файл UTF-8 с разделителями табуляцией.
  5. Если вам нужен файл с ограничением запятая , откройте только что переименованный файл csv и замените все вкладки запятыми. Чтобы сделать это в Блокноте на Win 10, просто выберите одно поле с вкладкой и нажмите Ctrl+H. В открывшемся окне введите запятую , в поле «Заменить» и нажмите «Заменить все». Сохраните ваш файл. Результатом будет CSV-файл с разделителями-запятыми UTF-8.

Не открывайте его в MS-Office в любом случае !!! Теперь у вас есть CSV-файл с разделителями табуляции. Или запятую, если вы применили шаг номер 5.

5 голосов
/ 27 февраля 2014

Как ни странно, самый простой способ сохранить электронную таблицу размером 180 МБ в CSV-файле UTF8 - выбрать ячейки в Excel, скопировать их и вставить содержимое буфера обмена в SublimeText.

4 голосов
/ 13 мая 2017

В Excel 2016 у нас есть опция экспорта CSV, предназначенная для формата UTF-8.

3 голосов
/ 18 ноября 2012

Простой способ сделать это: скачать Open Office ( здесь ), загрузить электронную таблицу и открыть файл Excel (.xls или .xlsx). Затем просто сохраните его как текстовый CSV-файл, и откроется окно с просьбой сохранить текущий формат или сохранить в формате .ODF. выберите «сохранить текущий формат» и в новом окне выберите вариант, который лучше работает для вас, в зависимости от языка, на котором был написан ваш файл. Для испанского языка выберите Западную Европу (Windows-1252/ WinLatin 1), и файл работает просто отлично. Если вы выберете Unicode (UTF-8), он не будет работать с испанскими символами.

3 голосов
/ 05 марта 2013
  1. Сохранить файл xls (файл Excel) как текст Unicode => файл будет сохранен в текстовом формате (.txt)

  2. Изменить формат с .txt на .csv (переименовать файл с XYX.txt в XYX.csv

3 голосов
/ 01 июля 2012

В среде Windows сохраните и поработайте с файлом как обычно в Excel, а затем откройте сохраненный файл Excel в Gnome Gnumeric (бесплатно).Сохраните электронную таблицу Gnome Gnumeric как CSV, которая, в любом случае, для меня, сохранит как UTF-8 CSV.

3 голосов
/ 30 января 2018

Я тоже сталкивался с той же проблемой, но для этого есть простое решение.

  1. Откройте файл xlsx в Excel 2016 или более поздней версии.
  2. В «Сохранить как» выберите этот параметр: «(CSV UTF-8 (с разделителями-запятыми) *. Csv)»

Он отлично работает и генерируется CSV-файл, который можно импортировать в любое программное обеспечение. Я импортировал этот CSV-файл в свою базу данных SQLITE, и он отлично работает со всеми неповрежденными символами Юникода.

3 голосов
/ 07 мая 2011

Мне не удалось найти решение VBA для этой проблемы в Mac Excel.Казалось, просто нет способа вывести текст в формате UTF-8.

Так что мне, наконец, пришлось отказаться от VBA, укусить пулю и выучить AppleScript.Это было не так плохо, как я думал.

Решение описано здесь: http://talesoftech.blogspot.com/2011/05/excel-on-mac-goodbye-vba-hello.html

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