Как сохранить csv в utf 8 из excel
Я разрабатываю часть приложения, которое отвечает за экспорт некоторых данных в CSV-файлы. Приложение всегда использует UTF-8 из-за его многоязычного характера на всех уровнях. Но открытие таких CSV-файлов (содержащих, например, диакритику, кириллицу, греческие буквы) в Excel не дает ожидаемых результатов, показывающих что-то вроде Г„/Г¤, Г–/Г¶ . И я не знаю, как заставить Excel понять, что открытый CSV-файл закодирован в UTF-8. Я также попытался указать UTF-8 BOM EF BB BF , но Excel игнорирует это.
есть ли обходной путь?
П. С. Какие инструменты могут потенциально вести себя как и Excel?
Алекс прав, но так как вы должны экспортировать в csv, вы можете дать пользователям этот совет при открытии файлов csv:
- сохранить экспортированный файл в формате csv
- Открыть Excel
- импорт данных с помощью данных-- > импорт внешних данных --> импорт данных
- выберите тип файла " csv " и перейдите к файлу
- в Мастере импорта измените File_Origin на "65001 UTF" (или выберите правильный идентификатор символа языка)
- измените разделитель на запятую
- выберите, куда импортировать и закончить
таким образом, специальные символы должны отображаться правильно.
маркер порядка байтов UTF-8 подскажет Excel 2007+ в том, что вы используете UTF-8. (См.это так пост).
ошибка с игнорируемой спецификацией, похоже, исправлена для Excel 2013. У меня была такая же проблема с кириллическими буквами, но добавление символа BOM \uFEFF не помогло.
" когда я задавал этот вопрос, я попросил способ открыть UTF-8 Файл CSV в Excel без каких-либо проблем для пользователя. "
ответ, отмеченный как принятый ответ С 200 + up-голосами, бесполезен для меня, потому что я не хочу давать своим пользователям руководство по настройке Excel. Кроме того: это руководство будет применяться к одной версии Excel, но другой Excel версии имеют различные меню и диалоговые окна конфигурации. Вам понадобится руководство для каждой версии Excel.
Итак, вопрос в том, как заставить Excel показывать данные UTF8 простым двойным щелчком мыши?
ну, по крайней мере, в Excel 2007 это невозможно, если вы используете CSV-файлы, потому что спецификация UTF8 игнорируется, и вы увидите только мусор. Это уже часть вопроса Любомира Шайдарова:
" Я также попытался указать UTF-8 BOM EF BB BF, но Excel игнорирует это."
Я делаю тот же опыт: запись русских или греческих данных в файл CSV UTF8 с результатами BOM в мусоре в Excel:
содержание файла CSV UTF8:
результат в Excel 2007:
решение не использовать CSV в все. Этот формат реализован Microsoft настолько глупо, что зависит от настроек региона в контроль панель если запятая или точка с запятой используется в качестве разделителя. Таким образом, один и тот же файл CSV может правильно открываться на одном компьютере, но на другом компьютере нет. "CSV " означает"запятая разделенные значения", но, например, в немецкой Windows по умолчанию точка с запятой должна использоваться как разделитель, а запятая не работает. (Здесь он должен быть назван SSV = значения, разделенные точкой с запятой) CSV-файлы не могут быть заменены между различными языковыми версиями Windows. Это дополнительная проблема к проблеме UTF-8.
Excel существует с десятилетий. Жаль, что Microsoft не смогла реализовать такую базовую вещь, как импорт CSV за все эти годы.
если вы поместите те же значения в HTML-файл и сохраните этот файл как файл UTF8 с BOM с расширением файла XLS вы получите правильный результат.
содержимое файла UTF8 XLS:
результат в Excel 2007:
вы даже можете использовать цвета в HTML, которые Excel покажет правильно.
результат в Excel 2007:
в этом случае только сама таблица имеет черную границу и линии. Если вы хотите, чтобы все ячейки отображали линии сетки, это также возможно в HTML:
CSV (Comma Separated Values) – распространённый формат для хранения табличных данных (числовых и текстовых) в виде простого текста. Этот формат файлов популярен и живуч благодаря тому, что огромное количество программ и приложений понимают CSV, хотя бы как альтернативный вариант файлового формата для импорта / экспорта. Более того, формат CSV позволяет пользователю заглянуть в файл и немедленно найти проблему с данными, если таковая имеется, изменить разделитель CSV, правила цитирования и так далее. Это возможно потому, что CSV – это простой текст, и даже не очень опытный пользователь, сможет легко его понять без специальной подготовки.
В этой статье мы изучим быстрые и эффективные способы экспорта данных из Excel в CSV и узнаем, как преобразовать файл Excel в CSV, сохранив без искажений все специальные и иностранные символы. Описанные в статье приёмы работают во всех версиях Excel 2013, 2010 и 2007.
Как преобразовать файл Excel в CSV
Если требуется экспортировать файл Excel в какое-либо другое приложение, например, в адресную книгу Outlook или в базу данных Access, предварительно преобразуйте лист Excel в файл CSV, а затем импортируйте файл .csv в другое приложение. Ниже дано пошаговое руководство, как экспортировать рабочую книгу Excel в формат CSV при помощи инструмента Excel – «Сохранить как».
Замечание: Все упомянутые форматы сохраняют только активный лист Excel.
Вот так рабочий лист Excel можно сохранить как файл CSV. Быстро и просто, и вряд ли тут могут возникнуть какие-либо трудности.
Экспортируем из Excel в CSV с кодировкой UTF-8 или UTF-16
Если на листе Excel содержатся какие-либо специальные или иностранные символы (тильда, ударение и подобные) или иероглифы, то преобразование листа Excel в CSV описанным выше способом не сработает.
Дело в том, что команда Сохранить как > CSV (Save as > CSV) исказит все символы, кроме ASCII (American Standard Code for Information Interchange). И если на листе Excel есть парные кавычки или длинные тире (перенесённые в Excel, например, из документа Word при копировании / вставке текста) – такие символы также будут искромсаны.
Простое решение – сохранить лист Excel как текстовый файл Unicode(.txt), и затем преобразовать его в CSV. Таким образом все символы, не входящие в ASCII, останутся в целости и сохранности.
Прежде чем двинуться дальше, позвольте мне кратко пояснить главные отличия между кодировками UTF-8 и UTF-16, чтобы в каждом индивидуальном случае Вы могли выбрать подходящий формат:
- UTF-8 – это более компактная кодировка, использующая для каждого символа от 1 до 4 байт. Чаще всего рекомендуется использовать этот формат, когда символы ASCII преобладают в файле, т.к. большинство таких символов требует 1 байт памяти. Ещё одно преимущество в том, что кодировка файла UTF-8, содержащего только символы ASCII, ничем не будет отличаться от такого же ASCII-файла.
- UTF-16 использует от 2 до 4 байт для хранения каждого символа. Учтите, что не во всех случаях файл UTF-16 требует больше места в памяти, чем файл UTF-8. Например, японские символы занимают от 3 до 4 байт в UTF-8 и от 2 до 4 байт в UTF-16. Таким образом, есть смысл использовать UTF-16, если данные содержат азиатские символы, в том числе Японские, Китайские и Корейские. Существенный недостаток этой кодировки в том, что она не полностью совместима с ASCII-файлами и требуются специальные программы для отображения таких файлов. Помните об этом, если планируете импортировать получившиеся файлы из Excel куда-то ещё.
Как преобразовать файл Excel в CSV UTF-8
Предположим, у нас есть лист Excel с иностранными символами, в нашем примере – это японские имена.
Чтобы экспортировать этот лист Excel в файл CSV, сохранив при этом все иероглифы, сделаем следующее:
Замечание: Не все простые текстовые редакторы полностью поддерживают символы Юникод, поэтому некоторые из них могут отображаться как прямоугольники. В большинстве случаев, это никак не повлияет на итоговый файл, и можно просто не обращать на это внимание или выбрать более продвинутый редактор, например, Notepad++.
- Так как в нашем текстовом Юникод файле в качестве разделителей используется символ табуляции, а мы хотим преобразовать его в CSV (разделители – запятые), то необходимо заменить символы табуляции на запятые.
Замечание: Если нет строгой необходимости получить файл именно с разделителями – запятыми, а нужен любой файл CSV, который Excel сможет понять, то этот шаг можно пропустить, так как Microsoft Excel отлично понимает файлы с разделителем – табуляцией.
- Если всё же нужен файл CSV (разделители – запятые), то выполните в Блокноте следующие действия:
- Выделите символ табуляции, кликните по нему правой кнопкой и в контекстном меню нажмите Копировать (Copy), или просто нажмите Ctrl+C, как показано на рисунке ниже.
- Нажмите Ctrl+H, чтобы открылось диалоговое окно Заменить (Replace) и вставьте скопированный символ табуляции в поле Что (Find what). При этом курсор сместится вправо – это значит, что символ табуляции вставлен. В поле Чем (Replace with) введите запятую и нажмите Заменить все (Replace all).
В Блокноте результат будет приблизительно вот такой:
Замечание: Если Ваш файл предназначен для использования за пределами Excel и формат UTF-8 является обязательным требованием, то не совершайте на листе никаких изменений и не сохраняйте его снова в Excel, поскольку это может привести к проблемам с чтением кодировки. Если какая-то часть данных не отображается в Excel, откройте тот же файл в Блокноте и в нём внесите исправления в данные. Не забудьте снова сохранить файл в формате UTF-8.
Как преобразовать файл Excel в CSV UTF-16
Экспортировать в файл CSV UTF-16 намного быстрее и проще, чем в UTF-8. Дело в том, что Excel автоматически применяет формат UTF-16 при сохранении файла как Текст Юникод (Unicode Text).
Для этого сохраняем файл при помощи инструмента Сохранить как (Save as) в Excel и затем в Проводнике Windows изменяем расширение созданного файла на .csv. Готово!
Если нужен файл CSV с запятой или точкой с запятой в качестве разделителя, замените все символы табуляции на запятые или точки с запятой соответственно в Блокноте или в любом другом текстовом редакторе на свой выбор (ранее в этой статье есть подробная инструкция, как это делается).
Другие способы преобразования файлов Excel в CSV
Описанные выше способы экспорта данных из Excel в CSV (UTF-8 и UTF-16) универсальны, т.е. подойдут для работы с любыми специальными символами и в любой версии Excel от 2003 до 2013.
Существует множество других способов преобразования данных из формата Excel в CSV. В отличие от показанных выше решений, эти способы не будут давать в результате чистый UTF-8 файл (это не касается OpenOffice, который умеет экспортировать файлы Excel в несколько вариантов кодировки UTF). Но в большинстве случаев получившийся файл будет содержать правильный набор символов, который далее можно безболезненно преобразовать в формат UTF-8 при помощи любого текстового редактора.
Преобразуем файл Excel в CSV при помощи Таблиц Google
Как оказалось, можно очень просто преобразовать файл Excel в CSV при помощи Таблиц Google. При условии, что на Вашем компьютере уже установлен Google Drive, выполните следующие 5 простых шагов:
Совет: Если файл Excel относительно небольшой, то для экономии времени можно перенести из него данные в таблицу Google при помощи копирования / вставки.
В завершение откройте созданный CSV-файл в любом текстовом редакторе, чтобы убедиться, что все символы сохранены правильно. К сожалению, файлы CSV, созданные таким способом, не всегда правильно отображаются в Excel.
Сохраняем файл .xlsx как .xls и затем преобразуем в файл CSV
Для этого способа не требуется каких-либо дополнительных комментариев, так как из названия уже всё ясно.
Это решение я нашёл на одном из форумов, посвящённых Excel, уже не помню, на каком именно. Честно говоря, я никогда не использовал этот способ, но, по отзывам множества пользователей, некоторые специальные символы теряются, если сохранять непосредственно из .xlsx в .csv, но остаются, если сначала .xlsx сохранить как .xls, и затем как .csv, как мы делали в начале этой статьи.
Так или иначе, попробуйте сами такой способ создания файлов CSV из Excel, и если получится, то это будет хорошая экономия времени.
Сохраняем файл Excel как CSV при помощи OpenOffice
OpenOffice – это пакет приложений с открытым исходным кодом, включает в себя приложение для работы с таблицами, которое отлично справляется с задачей экспорта данных из формата Excel в CSV. На самом деле, это приложение предоставляет доступ к большему числу параметров при преобразовании таблиц в файлы CSV (кодировка, разделители и так далее), чем Excel и Google Sheets вместе взятые.
Просто открываем файл Excel в OpenOffice Calc, нажимаем Файл > Сохранить как (File > Save as) и выбираем тип файла Текст CSV (Text CSV).
На следующем шаге предлагается выбрать значения параметров Кодировка (Character sets) и Разделитель поля (Field delimiter). Разумеется, если мы хотим создать файл CSV UTF-8 с запятыми в качестве разделителей, то выбираем UTF-8 и вписываем запятую (,) в соответствующих полях. Параметр Разделитель текста (Text delimiter) обычно оставляют без изменения – кавычки («). Далее нажимаем ОК.
Таким же образом для быстрого и безболезненного преобразования из Excel в CSV можно использовать ещё одно приложение – LibreOffice. Согласитесь, было бы здорово, если бы Microsoft Excel предоставил возможность так же настраивать параметры при создании файлов CSV.
В этой статье я рассказал об известных мне способах преобразования файлов Excel в CSV. Если Вам знакомы более эффективные методы экспорта из Excel в CSV, расскажите об этом в комментариях. Благодарю за внимание!
CSV (разделенные запятыми значения) — это тип файлов, который содержит информацию (такую как текст и номера) в виде сплошного полотна текста. Документы в таком расширении поддерживаются большинством современных программ и приложений, поэтому CSV пользуется значительной популярностью как один из способов импорта и экспорта данных. Файлы в таком формате позволяют быстро определить проблему (если она есть), потому что при ошибках меняются разделения данных и правила цитирования. CSV доступен для понимания новичкам, обычным и более продвинутым пользователям, так как этот тип содержит в себе простой текст, и для него не требуется высокого уровеня знаний или понимания принципов работы сложных кодировок.
В этом руководстве мы рассмотрим самые быстрые и удобные способы конвертации данных, а также попытаемся объяснить, как сохранить различные иностранные символы при переносе данных, и как провести этот процесс с кодировкой UTF-8 и UTF-16.
Перевод файлов в CSV
У вас возникла необходимость использовать файлы Excel в другой программе? Для этого вам нужно сначала превратить их в CSV-файлы и только потом — переносить в другие приложения . Дальше мы представим пошаговое руководство конвертации и переноса файла с помощью функции «Сохранить как»:
Кроме этого типа файла есть и несколько дополнительных расширений:
- Разделитель — запятые. Это расширение сохранит файл в виде текста, разделенного запятыми, и даст возможность использовать его в любых других приложениях. К тому же он будет совместим с другими версиями Windows.
- Macintosh. Это расширение дает возможность использовать файл на ОС Mac.
- MS-DOS. Позволяет использовать файл на MS-DOS.
- Юникод (.txt). Это стандартное расширение среди большинства программ, которое читается практически всеми операционными системами. Оно может отображать символы практически всех современных языков. И обладает поддержкой нескольких древних языков. Так что, если у вас в документе есть нестандартные символы, сохранять их лучше в этом расширении.
Заметка. Все вышеуказанные форматы сохранят информацию только на действующем рабочем листе.
- Выберите папку, в которую хотите сохранить файл, и нажмите «Сохранить». После этого всплывет несколько диалоговых окон. Не волнуйтесь – все работает как надо, это не ошибки.
- Одно окно сообщит о том, что сохранится только активный рабочий лист. Если вас это устраивает, жмите ОК. Если же вам нужно сохранить информацию на всех рабочих листах, жмите «Отмена». Нет никакой отдельной функции, чтобы сохранить сразу все данные, поэтому вам нужно будет сохранить содержание каждого листа отдельно как обычный Excel-файл, и потом уже конвертировать их в CSV.
- Второе окно сообщает, что в вашем файле может быть информация, которая не поддерживается кодом CSV. Это тоже нормально, так что жмите «Да».
Вот и все, ваши файлы конвертированы. Это довольно простой, прямолинейный и быстрый процесс, который вряд ли вызовет какие-то проблемы или сложности.
Как перевести файлы в CSV с кодировкой UTF-8 и UTF-16
Допустим, у вас есть документ Excel, содержащий в себе иностранные символы, например, разнообразные иероглифы, тогда вышеуказанный метод конвертирования не сработает. Это из-за того, что при сохранении таким способом все символы, которые не относятся к ASCII (Американскому стандартному коду для информационного обмена), отображаются неправильно . А если ваш документ содержит цитаты или длинные пробелы (после переноса или копирования файла в Excel из Word) — эти символы тоже не будут отображаться как положено.
Самым простым способом будет сохранить Excel-файл в Юникоде и потом конвертировать его в CSV. В этом случае все символы, которые не относятся к стандартному коду информационного обмена, никуда не денутся и будут отображаться, как надо.
Перед тем, как мы продолжим с использованием кодировок во время сохранения файлов, следует выяснить основные различия между кодировкой UTF-8 и UTF-16 для того, чтобы пользователь смог сделать для себя правильный выбор.
UTF-8 использует 1-4 бита на каждый символ, так что в целом получаются довольно небольшие по размеру файлы . Обычно эта кодировка используется для файлов, в которых по большей части участвуют символы стандартного кода для информационного обмена. Другое преимущество данного типа файлов заключается в том, что кодировка символов стандартного кода информационного обмена полностью соответствует файлам этого кода.
UTF-16 использует 2-4 бита. Казалось бы, такие файлы должны занимать больше места, но нет . Они редко требуют больше свободного пространства для хранения. К примеру, в UTF-8 нужно 3-4 бита для хранения японских символов, а в UTF-16 — только 2-4.
Так что эту кодировку хорошо использовать, если в ваших документах много азиатских символов из японского, корейского или китайского языков. К недостаткам можно отнести то, что такая кодировка не полностью совместима с кодами информационного обмена и требует программы, способной распознавать Юникод, чтобы отобразить такие символы. Так, об этом нужно помнить, когда пользователь собирается импортировать куда-то файлы Excel.
Как перевести Excel файлы в CSV при наличии кодировки UTF-8
Предположим, у вас есть таблица с иностранными знаками — в нашем случае это будут японские символы:
В таком случае понадобится сделать так, чтобы эти символы остались на месте при переносе:
Заметка. Некоторые простые текстовые программы не поддерживают все символы, так что они могут отображаться в виде квадратов. Обычно это никак не влияет на конечный результат, и это можно игнорировать. Или можно установить более продвинутую версию текстового редактора, например, “Блокнот++”.
- Так как наш Юникод-файл разделен табуляцией, а нам нужен разделенный запятой файл, то необходимо заменить все пробелы на запятые.
Заметка. Если у вас нет специфических требований относительно разделения текста в файле, вы можете пропустить следующий шаг, так как Excel без проблем справляется с табуляцией.
Если же вам все-таки нужны документы с разделительными запятыми, то продолжайте работу с Блокнотом.
В Блокноте в результате должно получиться следующее:
Как альтернативный вариант, это можно сделать после завершения работы в “Блокноте”. Когда будете сохранять файл, в типе файла выберите «Все файлы (*.*)»
- Откройте файл из Excel из меню «Файл» → «Открыть» → ваш файл.
Заметка. Если ваш файл будет использоваться вне Excel с кодировкой UTF-8, не вносите какие-либо изменения в документ. И не нужно сохранять его в CSV, иначе это создаст проблемы в кодировке. Если какая-то информация не отражается в Excel, исправлять все нужно через Блокнот.
Как перенести файлы Excel в CSV с кодировкой UTF-16
Перенос файлов с такой кодировкой значительно быстрее и легче, чем с UTF-8. Все потому что Excel автоматически использует эту кодировку во время сохранения файлов в Юникоде (.txt).
Тут все просто: сохраняете ваш файл как обычно, но в типе файла выбираете Юникод. Все так просто и без лишних шагов. А после, просто меняете расширение на .csv, и все — готово.
Если же нужно разделение запятыми в тексте, то проделывайте ту же процедуру, что и в предыдущем примере с UTF-8.
Другие способы конвертации
Вышеописанные методы универсальны и подходят для работы с любыми специальными символами на всех версиях Excel.
Однако, существует несколько других способ конвертации файлов Excel в CSV. Но в отличии от предыдущих вариантов, эти методы не дадут готовый UTF-формат. Но все необходимые данные и символы сохранятся, так что потом это можно перевести в UTF.
Таблицы Google
С помощью этих таблиц можно легко перенести Excel-файлы в CSV, для этого нужно выполнить пять простых шагов:
Подсказка: Если у вас небольшая таблица Excel, вы можете просто скопировать и вставить таблицу.
Для проверки всей информации вы можете воспользоваться любым текстовым редактором . Но, к несчастью, при сохранении документов таким способом данные могут неправильно отображаться в Excel.
Сохранить как «.xksx», «.xls» и конвертировать в «.csv»
Сохраняете файл как одно из этих расширений и потом конвертируйте. Однако такой способ работает не у всех пользователей, так что можете попробовать его. Если не получится — то не проблема, а если все-таки получится — это сохранит много времени.
Сохранить файл с помощью OpenOffice
С помощью этой программы можно экспортировать нужные файлы, так как она предоставляет все необходимые для этого инструменты, к тому же программа находится в открытом доступе .
Просто открываете ваш документ с помощью этой программы, затем переходите в «Файл» → «Сохранить как» и указывайте CSV (.csv) как тип сохранения.
Далее появится окно с выбором Наборов символов и Разделителями полей. Выбираете UTF-8 с разделенными запятыми символами и жмете ОК.
Вы также можете использовать любое другое приложение подобного рода для проведения безболезненной и простой конвертации файлов в CSV.
Пожалуй, это все самые распространенные способы конвертации Excel файлов в CSV.
У меня есть файл Excel, который имеет некоторые испанские символы(Тильды и т. д.) что мне нужно преобразовать в файл CSV для использования в качестве файла импорта. Однако, когда я сохраняю как CSV, он искажает "специальные" испанские символы, которые не являются символами ASCII. Кажется, что это также происходит с левыми и правыми кавычками и длинными тире, которые, как представляется, исходят от исходного пользователя, создающего файл Excel в Mac.
поскольку CSV - это просто текстовый файл, я уверен, что он может обрабатывать кодировку UTF8, поэтому я предполагая, что это ограничение Excel, но я ищу способ получить из Excel в CSV и сохранить символы, отличные от ASCII.
простой обходной путь-использовать электронную таблицу Google. Вставьте (значения, только если у вас есть сложные формулы) или импортируйте лист, а затем загрузите CSV. Я просто попробовал несколько персонажей, и это работает довольно хорошо.
Примечание: Google листы имеют ограничения при импорте. См.здесь.
Примечание: будьте осторожны с конфиденциальными данными с Google листов.
EDIT:другая альтернатива - в основном они используют макрос VB или addins для принудительного сохранения как В utf8. Я не пробовал ни одного из этих решений, но они звучат разумно.
Я нашел OpenOfficeприложение электронной таблицы, Calc, действительно хорошо обрабатывает данные CSV.
в "Сохранить как. "диалог, нажмите "Параметры формата", чтобы получить различные кодировки для CSV. LibreOffice работает так же, как AFAIK.
сохраните лист Excel как " Unicode Text (.формат txt.") Хорошей новостью является то, что все международные символы находятся в UTF16 (обратите внимание, не в UTF8). Однако новое"*.файл " txt " имеет разделители табуляции, а не запятые, и поэтому не является истинным CSV.
(необязательно) если вы не можете использовать файл с разделителями табуляции для импорта, используйте свой любимый текстовый редактор и замените символы табуляции запятыми ",".
импортировать *.txt файл в целевое приложение. Убедитесь, что он может принять формат UTF16.
Если UTF-16 был правильно реализован с поддержкой кодовых точек, отличных от BMP, то вы можете конвертировать файл UTF-16 в UTF-8 без потери информации. Я предоставляю вам найти ваш любимый способ сделать это.
Я использую эту процедуру для импорта данных из Excel в Moodle.
Я знаю, что это старый вопрос, но я случайно наткнулся на этот вопрос, борясь с теми же проблемами, что и OP.
не найдя ни одного из предлагаемых решений жизнеспособным вариантом, я решил выяснить, есть ли способ сделать это только с помощью Excel.
к счастью, я обнаружил, что проблема потерянного символа происходит только (в моем случае) при сохранении из формата xlsx в формат csv. Сначала я попытался сохранить файл xlsx в xls, а затем в csv. Это на самом деле работал.
пожалуйста, дайте ему попробовать и посмотреть, если это работает для вас. Удача.
можно использовать iconv команда под Unix (также доступна в Windows как libiconv).
после сохранения в CSV под Excel в командной строке ставим:
(Не забудьте заменить cp1250 вашей кодировкой).
работает быстро и отлично подходит для больших файлов, таких как база данных почтовых кодов, которые не могут быть импортированы в GoogleDocs (предел 400.000 ячеек).
единственный "простой способ" сделать это заключается в следующем. Во-первых, поймите, что есть разница между тем, что отображается и что скрывается в Excel .CSV-файл.
(1) откройте файл Excel, где у вас есть информация (.XLS, а также .файлы XLSX)
(2) в Excel выберите " CSV (с разделителями-запятыми) (*.csv) как тип файла и сохранить как этот тип.
(3) в блокноте (найдено в разделе "программы", а затем аксессуары в Start меню), откройте сохраненный .CSV-файл в блокноте
(4) затем выберите - > Сохранить как..и в нижней части окна" сохранить как "есть поле выбора, помеченное как"кодировка". Выберите UTF-8 (Не используйте ANSI или вы потеряете все акценты и т. д.). После выбора UTF-8 сохраните файл в несколько отличающемся от исходного имени.
этот файл находится в UTF-8 и сохраняет все символы и акценты и может быть импортирован, например, в MySQL и другую базу данных программы.
этот ответ взят из этот форум.
еще один, который я нашел полезным: "цифры " позволяет настройки кодирования при сохранении в формате CSV.
вы можете сделать это на современной машине Windows без стороннего программного обеспечения. Этот метод надежен и будет обрабатывать данные, которые включают кавычки, символы табуляции, символы CJK и т. д.
1. Сохранить из Excel
в Excel сохраните данные в file.txt С помощью типа Unicode Text (*.txt) .
2. Запустить PowerShell
Run powershell из меню "Пуск".
3. Загрузить файл в В PowerShell
4. Сохраните данные как CSV
" nevets1219 "прав насчет Google docs, однако если вы просто" импортируете " файл, он часто не конвертирует его в UTF-8.
но если вы импортируете CSV в существующую электронную таблицу Google, она преобразуется в UTF-8.
полученный файл будет в UTF-8
для тех, кто ищет полностью программное (или, по крайней мере, серверное) решение, я имел большой успех, используя инструмент xls2csv catdoc.
установить конверотора catdoc, преобразующего файлы:
это очень быстро.
обратите внимание, что важно, чтобы вы включили -d utf-8 флаг, иначе он будет кодировать вывод по умолчанию cp1252 кодировка, и вы рискуете потерять информацию.
обратите внимание, что xls2csv также работает только с .xls файлы, он не работает с .xlsx файлы.
У меня есть приложение Java, которое читает CSV-файлы, созданные в Excel (например, 2007). Кто-нибудь знает, какую кодировку MS Excel использует для сохранения этих файлов?
Я бы тоже догадался:
- windows-1255 (Cp1255)
- ISO-8859-1
- utf8 в
но я не могу декодировать расширенные символы (например, французские акцентированные буквы), используя любой из этих типов кодировок.
CSV-файлы могут быть в любом формате, в зависимости от того, какая опция кодирования была указана при экспорте из Excel: (диалог сохранения, кнопка "сервис", элемент "веб-параметры", вкладка "кодировка")
UPDATE: Excel (включая Office 2013) фактически не уважает веб-параметры, выбранные в "сохранить как. - диалог, значит, это какая-то ошибка. Я просто использую OpenOffice Calc, чтобы открыть мои XLSX-файлы и экспортировать их в CSV-файлы (изменить настройки фильтра, выбрать кодировку UTF-8).
из памяти Excel использует машинную кодировку ANSI. Таким образом, это будет Windows-1252 для установки в США, 1251 для русского языка и т. д.
У меня была аналогичная проблема на прошлой неделе. Я получил несколько CSV-файлов с различными кодировками. Перед импортом в базу данных я использовал chardet libary автоматически вынюхивать правильную кодировку.
Chardet-это порт от Mozillas character detection engine, и если размер выборки достаточно велик (один акцентированный символ не будет делать), работает очень хорошо.
пробуждение этой старой нити. Мы сейчас в 2017 году. И все же Excel не может сохранить простую электронную таблицу в формате CSV при сохранении исходной кодировки . Просто удивительно.
к счастью, Google Docs живет в правильном веке. Решение для меня - просто открыть электронную таблицу с помощью Google Docs, чем загрузить ее обратно в CSV. Результатом является правильно закодированный CSV-файл (со всеми строками, закодированными в UTF8).
Russian Edition предложения CSV , CSV (Macintosh) и CSV (DOS) .
при сохранении в plain CSV , он использует windows-1251 .
я просто пытался сохранить французское слово Résumé вместе с русским текстом он сохранил его в HEX как 52 3F 73 75 6D 3F , 3F являясь ASCII код question mark .
когда я открыл CSV файл, слово, конечно, стало нечитаемым ( R?sum? )
cp1250 широко используется в документах Microsoft Office, включая Word и Excel 2003.
простой способ подтвердить это было бы:
- создайте таблицу с символами более высокого порядка, например "Veszprém"в одной из ячеек;
- используйте свой любимый язык сценариев для разбора и декодирования электронной таблицы;
- посмотрите, что ваш скрипт производит, когда распечатайте декодированные данные.
пример скрипта perl:
хотя верно, что экспорт файла excel, содержащего специальные символы в csv, может быть болью в заднице, однако есть простая работа: просто скопируйте/вставьте ячейки в документы google, а затем сохраните оттуда.
OOXML файлы, подобные тем, которые поступают из Excel 2007, кодируются в UTF-8, согласно Википедии. Я не знаю о CSV-файлах, но понятно, что он будет использовать тот же формат.
Читайте также: