Сохранить excel в txt с разделителем точка с запятой
Доброго времени суток.
Мне нужно сохранить excel лист в формате txt, с разделителем в виде точки с запятой и без кавычек.
Excel при сохранении в формате CSV (разделители - запятые) сохраняет так как мне нужно, только расширение .csv, а мне нужно .txt. С помощью макроса я это решил, но возникла проблема. При сохранении файла путем использования макроса, он уже использует в качестве разделителя не точку с запятой, а просто запятую, что портит всю картину.
Помимо этого нужно еще сменить кодировку на UTF-8 или Unicode при сохранении
Sub users_save()
Sheets("Users").Select
ThisWorkbook.Sheets("users").Copy
With ActiveWorkbook
.SaveAs Filename:="C:\source\files\users.txt", FileFormat:=xlCSV, _
CreateBackup:=False
.Close SaveChanges:=False
End With
При попытке сохранить в формате "Текстовый файл в формате Unicode" опять сталкиваюсь с проблемой, что разделение в виде запятой, а мне нужно в виде точки с запятой.
Доброго времени суток.
Мне нужно сохранить excel лист в формате txt, с разделителем в виде точки с запятой и без кавычек.
Excel при сохранении в формате CSV (разделители - запятые) сохраняет так как мне нужно, только расширение .csv, а мне нужно .txt. С помощью макроса я это решил, но возникла проблема. При сохранении файла путем использования макроса, он уже использует в качестве разделителя не точку с запятой, а просто запятую, что портит всю картину.
Помимо этого нужно еще сменить кодировку на UTF-8 или Unicode при сохранении
Sub users_save()
Sheets("Users").Select
ThisWorkbook.Sheets("users").Copy
With ActiveWorkbook
.SaveAs Filename:="C:\source\files\users.txt", FileFormat:=xlCSV, _
CreateBackup:=False
.Close SaveChanges:=False
End With
При попытке сохранить в формате "Текстовый файл в формате Unicode" опять сталкиваюсь с проблемой, что разделение в виде запятой, а мне нужно в виде точки с запятой. MfeaR
Sub users_save()
Sheets("Users").Select
ThisWorkbook.Sheets("users").Copy
With ActiveWorkbook
.SaveAs Filename:="C:\source\files\users.txt", FileFormat:=xlCSV, _
CreateBackup:=False
.Close SaveChanges:=False
End With
При попытке сохранить в формате "Текстовый файл в формате Unicode" опять сталкиваюсь с проблемой, что разделение в виде запятой, а мне нужно в виде точки с запятой. Автор - MfeaR
Дата добавления - 28.02.2015 в 17:05
Я использую Excel и хотел бы экспортировать мой файл в виде листа .scsv (значения, разделенные точкой с запятой) вместо .csv. Есть какой-либо способ сделать это?
пс. Я не могу сделать .csv и искать и заменять запятые точками с запятой, потому что поля уже содержат запятые.
Если вы готовы немного заняться программированием, конвертер можно было бы довольно легко написать на языке программирования Python, используя его встроенный csv модуль, который позволит легко читать файлы Excel в формате CSV, а затем писать новые версии, которые были о любом разделителе желаемом.
Как насчет выполнения Tab Delimited и замены вкладок точкой с запятой?
В Excel: Файл -> Сохранить как -> в поле Формат выберите «Tab с разделителями текста (.txt)», затем его сохранить.
Откройте файл в блокноте и откройте окно замены. Поскольку вы не можете использовать вкладку непосредственно в этом окне, скопируйте вкладку из документа, а затем вставьте ее в поле «Найти» и вставьте свою; в коробку замены. Тогда замени все.
Я предполагаю, что это будет работать, потому что очень редко иметь вкладки в документе Excel.
Несмотря на то, что он является базовым для большинства пользователей, не могли бы вы также предоставить набор инструкций?
Я не думаю, что это можно сделать полностью в Excel. Excel скрывает форматирование (вкладки), поэтому вы не сможете их заменить. Заменив их точкой с запятой, вы также не сможете открыть с помощью Excel (это будет просто одна гигантская клетка)
Если в вашем файле есть специальные символы другого языка (например, греческого), это не работает, так как символы символов заменяются на «?»
Я не думаю, что вы можете установить разделитель вывода непосредственно в Excel, но (при условии Windows) вы можете изменить разделитель списка ОС на ; - это сделано в Regional Settings->Customize . Excel будет использовать этот параметр для вывода ваших CSV-файлов.
Важное примечание: если вы сделаете это, все программы Windows, которые используют интернационализированные библиотеки Windows, примут это; является символом-разделителем для всех файлов CSV. Если это одноразовое решение, возможно, имеет смысл сохранить обычный CSV-файл и использовать редактор для замены запятых на точки с запятой
Это изменение также повлияет на открытие файлов CSV в Excel. И, как упоминалось в комментарии выше, возможно, больше программ. Если вы хотите создать более совместимый CSV-файл, поместите его sep=; поверх CSV-файла, а затем, после сохранения файла, вы можете изменить разделитель списков на прежний.
Используйте LibreOffice Calc (это бесплатная загрузка и работает на всех основных операционных системах).
Чтобы сохранить значения, разделенные точкой с запятой:
- Откройте файл xlsx / csv
- Файл -> Сохранить как .
- Выберите «Фильтр CSV» в качестве фильтра (должен быть по умолчанию, если имя вашего файла заканчивается .csv )
- Отметьте «Изменить настройки фильтра» и нажмите Сохранить.
- Когда он запрашивает подтверждение формата файла, нажмите «Использовать текстовый формат CSV»
- Измените «Разделитель полей» на точку с запятой (здесь вы можете ввести что угодно).
- Нажмите ОК
LO Calc будет правильно обрабатывать запятые и точки с запятой в значениях ячеек.
Если вам нужен скрипт, вставьте следующее в модуль.
Чтобы изменить запятую на точку с запятой в качестве разделителя Excel по умолчанию для CSV - перейдите в раздел «Регион» -> «Дополнительные параметры» -> вкладка «Числа» -> «Разделитель и тип списка»; вместо значения по умолчанию,
Вы можете изменить разделитель глобально через Настроить формат.
Перейдите в раздел «Регион и язык», откройте «Регион», на вкладке «Форматы» нажмите кнопку «Дополнительные настройки», а в таблице «Номера» измените значение для разделителя списка:
Не просто публикуйте ссылку на ответ, включайте в ответ существенные детали. Если целевая страница исчезает, то ответ бесполезен. Кроме того, хотя я не эксперт по Windows, это выглядит так же, как и ответ wmz от трехлетней давности.
1.> Измените формат файла на .CSV (точка с запятой)
Для достижения желаемого результата нам нужно временно изменить настройку разделителя в настройках Excel.
Переместить в файл -> Параметры -> Дополнительно -> Редактирование раздела
Снимите флажок «Использовать системные разделители» и введите запятую в поле «Десятичный разделитель».
Теперь сохраните файл в формате .CSV, и он будет сохранен в формате точки с запятой .
Если ваш список значений находится в столбце A, попробуйте следующее: Ячейка B2 = A1 & ";" & Ячейка A2 B3 = B2 & ";" & A3 Скопируйте ячейку B3 в конец списка. Если вы скопируете и вставите последнюю ячейку в своем списке в качестве значений, у вас будет список, разделенный точкой с запятой. Затем вы можете скопировать это в Блокнот, Word или куда угодно.
Вы можете сделать это легко в 4 этапа с помощью функции конкатенации Excel.
В вашем файле добавьте столбец с точкой с запятой, где вы ожидаете, что они попадут в экспорт .csv.
Начните новый столбец в конце ваших данных и в первой строке используйте =concatenate() функцию. Обязательно выделите все ячейки, которые вы хотите отобразить в конечном файле. Ваша формула будет выглядеть примерно так =concatenate(A1,A2,A3. )
Скопируйте и вставьте полученную формулу вниз во все строки данных.
Выделите весь столбец формул и вставьте Специальные -> Значения в соседний столбец. Теперь все ваши данные разделены точками с запятой.
Наконец, экспортируйте файл в выбранный вами формат. Если вы экспортируете это как .txt в Windows, вы можете просто изменить расширение файла на .csv, потому что оба являются текстовыми форматами.
Про сборку листов из нескольких книг в одну текущую я уже писал здесь. Теперь разберем решение обратной задачи: есть одна книга Excel, которую нужно "разобрать", т.е. сохранить каждый лист как отдельный файл для дальнейшего использования.
Примеров подобного из реальной жизни можно привести массу. Например, файл-отчет с листами-филиалами нужно разделить на отдельные книги по листам, чтобы передать затем данные в каждый филиал и т.д.
Если делать эту процедуру вручную, то придется для каждого листа выполнить немаленькую цепочку действий (выбрать лист, правой кнопкой по ярлычку листа, выбрать Копировать, указать отдельный предварительно созданный пустой файл и т.д.) Гораздо проще использовать короткий макрос, автоматизирующий эти действия.
Способ 1. Простое разделение
Нажмите сочетание Alt+F11 или выберите в меню Сервис - Макрос - Редактор Visual Basic (Tools - Macro - Visual Basic Editor) , вставьте новый модуль через меню Insert - Module и скопируйте туда текст этого макроса:
Если теперь выйти из редактора Visual Basic и вернуться в Excel, а затем запустить наш макрос (Alt+F8), то все листы из текущей книги будут разбиты по отдельным новым созданным книгам.
Способ 2. Разделение с сохранением
При необходимости, можно созданные книги сразу же сохранять под именами листов. Для этого макрос придется немного изменить, добавив команду сохранения в цикл:
Этот макрос сохраняет новые книги-листы в ту же папку, где лежал исходный файл. При необходимости сохранения в другое место, замените wb.Path на свой путь в кавычках, например "D:\Отчеты\2012" и т.п.
Если нужно сохранять файлы не в стандартном формате книги Excel (xlsx), а в других (xls, xlsm, xlsb, txt и т.д.), то кроме очевидного изменения расширения на нужное, потребуется добавить еще и уточнение формата файла - параметр FileFormat:
Для основных типов файлов значения параметра FileFormat следующие:
- XLSX = 51
- XLSM = 52
- XLSB = 50
- XLS = 56
- TXT = 42
Способ 3. Сохранение в новые книги только выделенных листов
Если вы хотите раскидать по файлам не все листы в вашей книге, а только некоторые, то макрос придется немного изменить. Выделите нужные вам листы в книге, удерживая на клавиатуре клавишу Ctrl или Shift и запустите приведенный ниже макрос:
Создавать новое окно и копировать через него, а не напрямую, приходится потому, что Excel не умеет копировать группу листов, если среди них есть листы с умными таблицами. Копирование через новое окно позволяет такую проблему обойти.
Способ 4. Сохранение только выделенных листов в новый файл
Во всех описанных выше способах каждый лист сохранялся в свой отдельный файл. Если же вы хотите сохранить в отдельный новый файл сразу группу выделенных предварительно листов, то нам потребуется слегка видоизменить наш макрос:
Способ 5. Сохранение листов как отдельных PDF-файлов
- для этого используется уже другой метод (ExportAsFixedFormat а не Copy)
- листы выводятся в PDF с параметрами печати, настроенными на вкладке Разметка страницы (Page Layout)
- книга должна быть сохранена на момент экспорта
Нужный нам код будет выглядеть следующим образом:
Способ 6. Готовый макрос из надстройки PLEX
Если лень или нет времени внедрять все вышеописанное, то можно воспользоваться готовым макросом из моей надстройки PLEX:
Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы.
Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме переполнения стека.
Закрыто 4 месяца назад .
У меня есть файл Excel, в котором есть некоторые испанские символы (тильды и т. Д.), Которые мне нужно преобразовать в файл CSV для использования в качестве файла импорта. Однако, когда я делаю Save As CSV, он искажает «специальные» испанские символы, которые не являются символами ASCII. Похоже, что это также происходит с левыми и правыми кавычками и длинными черточками, которые, похоже, исходят от первоначального пользователя, создающего файл Excel в Mac.
Поскольку CSV - это просто текстовый файл, я уверен, что он может обрабатывать кодировку UTF8, поэтому я предполагаю, что это ограничение Excel, но я ищу способ перейти из Excel в CSV и сохранить символы не ASCII неповрежденными.
Я видел этот вопрос до того, как опубликовал, но речь идет о том, чтобы уже иметь UTF8 CSV и открыть его в Excel, а не наоборот.
Ответы ниже, кажется, работают, но они просто обходные пути. Кто-нибудь знает, как заставить Excel делать это?
Я хотел отбросить свои 2 цента: после большого количества проб и ошибок, попыток использовать функции VBA и т. Д. (Я использую Excel 97 по разным причинам) . просто «Сохранить как» в CSV (MSDOS) Формат решил эту проблему для меня. В моем случае данные CSV на веб-семинаре Citrix (GotoWebinar) заканчиваются символами, которые ломают некоторый код Apex с нашей стороны - сохранение в «CSV (MSDOS)» разрешает мне (ранее) загружать экспорт CSV в Notepad ++ и вставлять его в UTF- 8 пустых файлов и сохранение. :-P :-)
Простой обходной путь - использовать Google Spreadsheet. Вставьте (значения только при наличии сложных формул) или импортируйте лист, затем загрузите CSV. Я только что попробовал несколько символов, и это работает довольно хорошо.
ПРИМЕЧАНИЕ. Google Sheets имеет ограничения при импорте. Смотри здесь .
ПРИМЕЧАНИЕ. Будьте осторожны с конфиденциальными данными в Google Sheets.
РЕДАКТИРОВАТЬ: Другая альтернатива - в основном они используют макрос VB или надстройки, чтобы принудительно сохранить как UTF8. Я не пробовал ни одно из этих решений, но они звучат разумно.
С обычным блокнотом Windows (используя save as, а затем выбрав utf-8 в опции кодирования) у меня работало. Для меня это лучший подход, так как это должны делать пользователи, не имеющие прав администратора на своих машинах, поэтому установка дополнительного программного обеспечения не требуется.
Уххй. У меня только что была дрожь по спине. Что если в вашем файле Excel 200 000 строк? Или содержит конфиденциальные данные, которые вы не хотите включать в таблицу Excel? Используйте Openoffice / Libreoffice, если вам нужно.
Что делать, если размер файла большой? Размер листа Goolge составляет около 75 м, если я правильно помню. У меня есть файл
Я нашел OpenOffice что приложение для работы с электронными таблицами , Calc, действительно хорошо обрабатывает данные CSV.
В диалоговом окне «Сохранить как . » нажмите «Параметры формата», чтобы получить различные кодировки для CSV. LibreOffice работает так же, как AFAIK.
Я уверен, что это работает, у меня просто нет OpenOffice, так что Google Docs был проще в моей ситуации. но спасибо за предложение
OpenOffice Calc имеет больше и лучшие параметры при открытии и сохранении файлов "CSV" (разделители полей, кодировка и т. Д.), Чем в Google Docs и Excel. Кроме того, Google Docs в настоящее время имеет ограничение в 400 000 ячеек на электронную таблицу, чего нет в OpenOffice Calc.
Я могу подтвердить, что LibreOffice также работает: он предлагает опции кодировки символов при экспорте, которых, к сожалению, нет в Excel.
Это отличный вариант для тех, кто работает с конфиденциальными данными. Пакет OpenOffice может быть портативной установкой для тех, у кого заблокированы машины.
Сохраните лист Excel как «Текст Unicode (.txt)». Хорошей новостью является то, что все международные символы находятся в UTF16 (обратите внимание, не в UTF8). Однако новый файл "* .txt" разделен символом TAB, не разделен запятыми и, следовательно, не является истинным CSV.
(необязательно) Если вы не можете использовать файл TAB с разделителями для импорта, используйте ваш любимый текстовый редактор и заменяйте символы табуляции запятыми ",".
Импортируйте ваш * .txt файл в целевое приложение. Убедитесь, что он может принять формат UTF16.
Если UTF-16 был правильно реализован с поддержкой кодовых точек, отличных от BMP, вы можете преобразовать файл UTF-16 в UTF-8 без потери информации. Я оставляю это вам, чтобы найти ваш любимый способ сделать это.
Я использую эту процедуру для импорта данных из Excel в Moodle.
Наконец то, что сработало! Пробовал вышеупомянутые параметры Excel на Excel 2013 безуспешно. Я просто переключился на использование \ t в качестве разделенного символа, когда анализировал его, и он работал отлично!
Необходимо экспортировать XLS как CSV для импорта в MySQL. Используя Excel 2003, я экспортировал в формате «Unicode Text (.txt)», затем использовал Notepad ++ для замены TAB ; , затем импортировал txt-файл в phpmyadmin со стандартным «Набор символов файла: utf-8», Формат «CSV». используя LOAD DATA ". Вся кодировка была передана правильно.
Спасибо. Это имеет смысл. Почему MS до сих пор отказывается использовать UTF в качестве стандарта, бьет меня.
@ OskarLimka: Когда вы говорите «UTF», вы имеете в виду UTF-8 или UTF-16? Потому что Microsoft использует UTF-16 совсем немного.
«Хорошей новостью является то, что все международные символы находятся в UTF16 (заметьте, не в UTF8)». : полная ерунда . UTF-8 и UTF-16 - это два способа кодирования всего набора кодовых точек Unicode.
Я знаю, что это старый вопрос, но я столкнулся с этим вопросом, борясь с теми же проблемами, что и ОП.
Не найдя ни одного из предложенных решений приемлемым вариантом, я решил выяснить, есть ли способ сделать это, просто используя Excel.
К счастью, я обнаружил, что проблема потерянных символов возникает (в моем случае) только при сохранении из формата xlsx в формат csv. Я попытался сохранить файл xlsx сначала в xls, затем в csv. Это действительно сработало.
Пожалуйста, попробуйте и посмотрите, работает ли он для вас. Удачи.
Для меня в Excel для Mac 2011 это работает, но только если я выберу Windows comma separated (CSV) . Это не работает, если я использую параметры по умолчанию или DOS CSV - оба они заменяют акцентированные символы случайными символами барахла. Испытано для персонажей , включая é , è , â . Не знаю , если это реально UTF8 , но символы не искажаются.
Быстрое подтверждение - файлы, созданные с помощью этого метода в (Excel для Mac 2011) , не выдают CSV -файлы UTF-8, НО , они действительно генерируют CSV -файлы, которые по крайней мере содержат правильные символы и поэтому могут быть безболезненно преобразованы в UTF8 в текстовом редакторе. Это большой шаг вперед по сравнению с нелепым изуродованным мусором, который Excel выкладывает по умолчанию.
Да, согласился, это сработало и для меня (Excel Mac 2011), и это действительно заслуживает большего количества голосов.
Это не совсем работает для меня (с помощью Excel 2007). В моем файле было 2 не-ASCII символа, и один из них был сохранен в порядке, а другой нет.
Вы можете использовать команду iconv под Unix (также доступна в Windows как libiconv ).
После сохранения в формате CSV под Excel в командной строке введите:
(не забудьте заменить cp1250 вашей кодировкой).
Работает быстро и отлично подходит для больших файлов, таких как база данных почтовых индексов, которые нельзя импортировать в GoogleDocs (ограничение 400 000 ячеек).
Это бесполезно, если ваш контент содержит символы, которые не могут быть закодированы в 1250, лучшим способом было бы экспортировать как «Unicode .txt» в Excel и использовать iconv для преобразования из Utf16. Возможно также сделать sed или tr перевести с '\ t' на ','
Кодировка по умолчанию в Excel выглядит как CP858 при сохранении в формате CSV или MS-DOS CSV и Windows 1252 при сохранении в формате Windows CSV (как проверено в Excel для Mac 2011).
Я полностью согласен с тем, что это бесполезно, поскольку, когда Excel сохраняет в формате .csv, он теряет информацию, когда дело доходит до кодовых точек Unicode, которые не могут быть закодированы в кодировке по одной байте на кодовую точку.
Вы можете сделать это на современном компьютере с Windows без стороннего программного обеспечения. Этот метод является надежным, и он будет обрабатывать данные, которые включают в себя запятые в кавычки, символы вкладки в кавычках, символы CJK и т. Д.
1. Сохранить из Excel
В Excel сохраните данные, file.txt используя тип Unicode Text (*.txt) .
2. Запустите PowerShell
Запустите powershell из меню «Пуск».
3. Загрузите файл в PowerShell
4. Сохраните данные как CSV
Этот метод отлично работал для файла CSV с более чем 15 000 записей со строками, превышающими ограничение в 1024 символа, наложенное Блокнотом. Занимает секунды и не использует стороннее программное обеспечение. Спасибо!
@Ryan Эта проблема характерна для MySQL. Я только что попробовал проблемный символ в этом вопросе, и он отлично работал как в Excel, так и в PowerShell.
Единственный «легкий» способ сделать это заключается в следующем. Во-первых, поймите, что есть разница между тем, что отображается, и тем, что скрыто в файле .csv Excel.
- Откройте файл Excel, где у вас есть информация (.xls, .xlsx)
- В Excel выберите «CSV (запятая с разделителями) (* .csv) в качестве типа файла и сохраните как этот тип.
- В NOTEPAD (находится в разделе «Программы», а затем «Стандартные» в меню «Пуск») откройте сохраненный файл .csv в блокноте.
- Затем выберите -> Сохранить как . и в нижней части окна "Сохранить как" есть поле выбора, помеченное как "Кодировка". Выберите UTF-8 (НЕ используйте ANSI, иначе вы потеряете все акценты и т. Д.). После выбора UTF-8, затем сохраните файл под немного другим именем файла, чем оригинал.
Этот файл находится в UTF-8 и сохраняет все символы и акценты и может быть импортирован, например, в MySQL и другие программы базы данных.
Этот ответ взят с этого форума .
Это неверно из-за шага 2, сохраняя как CSV. Проблема заключается в том, что Excel сохраняет CSV-файл в cp1252, который представляет собой кодирование по одной байте на кодовую точку. Это приводит к потере информации для символов, которые не помещаются в один байт.
Это сработало для меня, но я не могу понять, почему. Мой файл, сгенерированный javascript, всегда неправильно читается в Excel (как другая кодировка). Но когда я открываю в блокноте и сохраняю как utf-8, он работает отлично! Итак, похоже, что есть метаданные с кодировкой. Как это работает? Если блокнот может сохранять файлы CSV в формате UTF-8, а Excel может их читать, возможно ли в моей программе генерировать правильные файлы CSV в формате UTF-8, которые может читать Excel?
Работал на меня. В XSLX конвертируется из Access. Форматы Diacritics и LF-only и ISO-date все в порядке. Тот или иной не работал с более популярными решениями.
Еще один, который я нашел полезным: « Числа » позволяют настройки кодирования при сохранении в формате CSV.
Также будьте осторожны с Numbers, так как они имеют ограничение на количество строк, и я преобразовал данные, как это, прежде чем не осознавать, что некоторые из них обрезаны. Excel / CSV имеет гораздо более высокие ограничения.
«nevets1219» подходит для Google docs, однако, если вы просто «импортируете» файл, он часто не конвертирует его в UTF-8.
Но если вы импортируете CSV в существующую электронную таблицу Google, она конвертируется в UTF-8.
- На главном экране документов (или диска) нажмите кнопку «Создать» и выберите «Электронная таблица»
- В меню «Файл» выберите «Импорт»
- Нажмите «Выбрать файл»
- Выберите «Заменить электронную таблицу»
- Выберите любой символ, который вы используете в качестве разделителя
- Нажмите «Импорт»
- В меню «Файл» выберите «Загрузить как» -> CSV (текущий лист)
Полученный файл будет в UTF-8
Проблема с этим ответом заключается в том, как вы сгенерировали файл CSV. Если вы сделали это путем упрощения сохранения в формате CSV в Excel, файл CSV будет находиться в формате cp1252, который представляет собой кодирование по одной байте на кодовую точку. Это приведет к потере информации, когда речь идет о символах, которые не помещаются в один байт.
Использование Notepad ++
Это исправит поврежденный файл CSV, сохраненный в Excel, и повторно сохранит его в правильной кодировке.
Excel сохраняет в CP-1252 / Windows-1252. Откройте файл CSV в Notepad ++. Выбрать
Да, ты можешь. Вы только сохраняете текстовый файл, а .csv текстовый файл. Этот ответ откроет файл CSV, поврежденный Excel, исправит его, а затем снова сохранит его с правильной кодировкой.
То, что вы общаетесь, имеет далеко идущие последствия. Используя этот выдающийся метод, мы можем достичь более высокого качества данных! Браво! (Тест: почему этот комментарий такой забавный?)
В Excel 2016 и более поздних версиях (включая Office 365) есть опция CSV, предназначенная для формата UTF-8.
В Office 365 сделайте Сохранить как; где раньше можно было выбрать CSV (с разделителями-запятыми), теперь один из типов файлов, который вы можете сохранить, как CSV UTF-8 (с разделителями-запятыми) (* .csv)
@dexgecko уверен: он называется кнопкой / меню «Сохранить». В настоящее время в Windows 2016 имеется четыре типа экспорта CSV в Windows: CSV сохраняет как «ANSI» (более или менее эквивалентный Latin1, но это может отличаться при установке ОС не из западных систем, я не уверен), UTF-8 CSV сохраняет как UTF-8 с BOM, CSV (DOS) сохраняет как CP850 (опять же, это зависит от установки?), а CSV (Mac) сохраняет как MacRoman.
Однако Excel сможет читать только файлы CSV UTF-8 и ANSI (Excel может использовать спецификацию для выбора). Чтобы импортировать из другой кодировки, переименуйте в .txt, откройте из Excel (тогда у вас есть длинный список кодировок на выбор), и, поскольку он не будет правильно интерпретировать разделитель, используйте кнопку «конвертировать», чтобы разбить строки. Вы также можете использовать эту хитрость при импорте CSV из другого языкового соглашения (например, во французском языке, разделенный полем разделитель - точка с запятой, поскольку запятая уже используется в качестве десятичного разделителя).
@dexgecko Странно, действительно. Согласно этой странице (на французском языке, извините), функциональность была добавлена в ноябре 2016 года в версии сборки 1610. В настоящее время у меня версия 1802. Тем не менее, я думал, что только Office 365 имеет такие эволюции, и я использую Office Pro 2016 (не 365 вариант). Может быть, попытаться обновить ваш офис.
Для тех, кто ищет полностью программное (или, по крайней мере, серверное) решение, я добился большого успеха, используя инструмент xls2csv от catdoc.
Это чертовски быстро.
Обратите внимание, что важно включить -d utf-8 флаг, иначе он будет кодировать выходные данные по умолчанию cp1252 кодировке , и вы рискуете потерять информацию.
Обратите внимание, что xls2csv также работает только с .xls файлами, он не работает с .xlsx файлами.
csv Расширение получает связано с Excel при установке Excel. Однако, если я открою один из этих файлов с помощью Excel, все будет помещено в один и тот же столбец, и запятая не будет интерпретироваться как разделитель.
Я могу вместо Файл -> Импорт . выбрать файл и выбрать точный способ интерпретации содержимого (разделители, типы данных и т. Д.). Но в большинстве случаев я просто хочу посмотреть на файл через табличное представление. Я не хочу обрабатывать его в Excel.
Есть ли способ заставить Excel автоматически интерпретировать разделитель и показывать CSV-файл как правильную таблицу, как только он открывается? Мне нужно это, чтобы я мог использовать Excel для быстрого просмотра таких файлов.
Я подозреваю, что должен быть способ, иначе Excel не связался бы с файлами CSV.
Я действительно понимаю, что выбранный ответ действительно отвечает на ваш вопрос, но второй должен быть выделен, потому что он предлагает глобальное решение, которое работает через общий доступ по электронной почте, по сети и т. Д.
При открытии CSV-файлов Excel будет использовать системный региональный параметр, вызываемый List separator для определения используемого по умолчанию разделителя.
Microsoft Excel открывает файлы .csv, но, в зависимости от региональных настроек системы, он может ожидать точку с запятой в качестве разделителя вместо запятой, поскольку в некоторых языках запятая используется в качестве десятичного разделителя. (из Википедии )
В Windows вы можете изменить List separator настройки в соответствии Regional and Language Options с указаниями на веб-сайте поддержки Office :
- Нажмите меню Пуск в Windows.
- Нажмите Панель управления.
- Откройте диалоговое окно «Язык и региональные стандарты».
- Нажмите вкладку региональных параметров.
- Нажмите Настроить / Дополнительные настройки (Win10).
- Введите новый разделитель в поле Разделитель списка.
- Нажмите ОК дважды.
Примечание : это работает только в том случае, если десятичный символ также не обозначен как запятая (в соответствии с приведенной выше цитатой из Википедии). Если это так, Excel не будет использовать запятую в качестве разделителя списка, даже если он выбран. Для многих регионов за пределами США запятая является десятичным символом по умолчанию.
В Mac OS X этот параметр, по-видимому, выводится из параметра десятичного разделителя (на панели « Язык и регион» в Системных настройках перейдите к разделу «Дополнительно» ). Если десятичный разделитель является точкой, то разделитель CSV по умолчанию будет запятой, но если разделитель десятичных чисел является запятой, то разделитель CSV по умолчанию будет точкой с запятой.
Как вы сами сказали в комментарии, у пользователей Mac есть альтернатива - быстро просмотреть эти CSV-файлы. Это плагин для Quick Look, называемый quicklook-csv, который обрабатывает обнаружение разделителя.
@Szabolcs Excel не будет пытаться обнаружить разделитель при открытии CSV-файла (используя file-> open или проводник ), он просто использует системные настройки. Однако ему удастся автоматически определить разделитель (табуляция, запятая, точка с запятой или пробел) при использовании функции импорта .
Ваш ответ был действителен и в OS X: это все еще десятичная точка / запятая, которая вызывает «проблему» (как вы упоминаете в ответе).
Позднее редактирование: извинения! это работает! По-видимому, необходимо перезапустить программу и / или выйти / -in снова, чтобы применить изменения. Я не знаю точно, когда, но вскоре после моей перемены это неожиданно сработало.
В Mac OS X не забудьте выйти из Excel после внесения изменений. Excel остается открытым, если закрыть только все открытые листы. Нажмите Excel> Выйти из Excel или просто нажмите Ctrl + Q, и все готово.
Если вы не хотите изменять формат файла и ориентированы ТОЛЬКО на Excel, вы можете воспользоваться следующим приемом Excel, чтобы помочь вам.
Добавьте новую строку в верхней части файла с текстом "sep=," (включая кавычки), чтобы Excel открывал файл с "," в качестве разделителя списка.
Это очень простой способ избежать изменения региональных настроек Windows и получить последовательный результат. Но это специфично для Excel.
Еще лучше, если вам нужно распространить этот файл среди других, поэтому вы должны быть уверены, что Excel сможет понять файл, независимо от его конфигурации. Я всегда использую csv, чтобы иметь возможность использовать любую систему управления версиями для совместного использования и совместной работы над этими файлами, но я боролся с запятой против точек с запятой и всегда мешал всем менять свои настройки, не более того. Большое спасибо!
Читайте также: