Как преобразовать файл CSV в MS Excel
Благодаря встроенным параметрам Microsoft Excel вы можете быстро и легко преобразовать файлы со значениями, разделенными запятыми (CSV — Comma-Separated Values), в формат Excel (XLSX).
Несколько способов конвертировать CSV в XLSX
Excel предлагает несколько способов преобразования файла CSV в файл XLSX.
Первый способ — открыть CSV-файл в Excel, а затем сохранить его как файл XLSX. Недостаток в том, что используется формат данных Excel по умолчанию, который может не совсем корректно работать с вашими данными CSV. Например, в вашем CSV-файле может использоваться определенный формат даты, а в Excel этот формат может отличаться, что сделает ваши данные неточными.
Другой способ — импортировать данные файла CSV в книгу Excel, а затем сохранить эту книгу как новый файл XLSX. С помощью этого метода вы можете настроить тип данных для данных CSV-файла.
В Excel также есть устаревший «Мастер импорта текста» для импорта данных из файлов, таких как CSV, но вышеупомянутые способы постепенно заменяют его.
Примечание: Вам не обязательно преобразовывать файл CSV в формат Excel, чтобы открывать и редактировать его в приложении Excel. Вы можете работать с файлами CSV, не конвертируя их в Excel.
Преобразование CSV в Excel с помощью опции
Сохранить какСохранить как — это быстрый и простой способ без проблем преобразовать большинство файлов CSV в формат Excel.
Чтобы использовать этот метод, otrybnt по нужному dafqke правой кнопкой мыши и выберите меню Открыть с помощью > Excel.
Когда Excel откроется, вы увидите в нем все данные вашего CSV-файла. Внимательно просмотрите эти данные и внесите в них любые изменения, прежде чем сохранять их в формате Excel.
Если все в надлежащем виде, сохраните файл как файл XLSX. Сделайте это, нажав в верхнем левом углу Excel Файл > Сохранить как > Обзор.
В окне Сохранить как выберите папку, в которую требуется сохранить полученный файл XLSX.
Щелкните поле Имя файла и введите имя нового файла. Щелкните раскрывающееся меню Тип файла и выберите Книга Excel (*.XLSX), чтобы файл был сохранен в формате Excel.Теперь ваш CSV-файл преобразован в формат Excel и доступен в указанной вами папке.
Преобразование CSV в Excel с помощью опции
Из текстаЧтобы просмотреть и изменить настройки данных CSV перед их импортом в Excel и последующим преобразованием в формат Excel, воспользуйтесь встроенной в приложение функцией импорта Из текста.
Эта функция связывает вашу книгу с вашим CSV-файлом и импортирует ваши CSV-данные. Затем вы сохраняете книгу как файл Excel.
Для начала откройте новую книгу Microsoft Excel. На ленте Excel вверху щелкните вкладку Данные.
В открывшемся диалоговом окне
В Excel откроется диалоговое окно Мастер текстов с данными вашего CSV-файла. Здесь Excel пытается сохранить ваши данные как можно более точно.
Указываете, что формат с разделителями (в данном случай разделитель точка с запятой), что данные содержат заголовки.
Нажимаете Далее. Указываете, что разделитель Другой, а именно ;
Нажимаем Далее, затем Готово. Открывается диалоговое окно Импорт данных. Здесь вы можете указать, с какой ячейки начать запись данных.
Теперь у вас есть данные файла CSV в виде обычного диапазона в электронной таблице Excel.
Вам остается только сохранить файл.
Вот и все. Теперь у вас есть версия файла CSV в формате Excel (XLSX).
Оставьте свой комментарий!
- Комментарий в ВКонтакте
Добавить комментарий
Следующая > |
---|
Бесплатный онлайн конвертер документов из CSV в XLS
Онлайн конвертер
- Конвертеры
- Форматы
- Карта сайта
(DOC, DOCX, XLS, XLSX, PPT, PPTX, HTML, TXT, CSV, RTF, ODT, ODS, ODP, WPS etc. )
# | Результат | Исходный файл |
---|
Чтобы выполнить конвертацию документа, выполните несколько шагов:
- С помощью кнопок «Локальный файл» или «Онлайн файл» укажите каким образом загрузить документ на сервер. Используете «локальный файл» если вам нужно сконвертировать файл с вашего компьютера, для того чтобы указать файл, находящийся в интернете выберите «Онлайн файл» и в появившемся поле вставьте ссылку на файл. Мы не устанавливаем никаких ограничений на размер документов, но чем больше файл, тем больше времени будет занимать конвертация. Просто наберитесь терпения и все получится. Вы можете конвертировать документы из более 30 форматов, таких как DOCX, HTML, ODB, PPT, PPTX, RTF и другие.
- Для начала конвертации нажмите кнопку «Конвертировать» чтобы начать преобразование. В случае успешной конвертации файл будет доступен в разделе «Результаты конвертации». Если вам нужно просто скачать файл, то кликните на имя файла. Если вы хотите получить другие способы сохранения, то нажмите на значок чтобы сформировать QR-код для загрузки результата на ваш мобильный телефон или планшет, а также если вы хотите сохранить файл в одном из онлайн-сервисов хранения данных, таких как Google Drive или Dropbox.
Пожалуйста, будьте терпеливы в процессе преобразования.
Сравнение форматов CSV и XLS
Format introduction | In computing, a comma-separated values (CSV) file stores tabular data (numbers and text) in plain text. Each line of the file is a data record. Each record consists of one or more fields, separated by commas. The use of the comma as a field separator is the source of the name for this file format. | Microsoft Excel up until 2007 version used a proprietary binary file format called Excel Binary File Format (.XLS) as its primary format. Excel 2007 uses Office Open XML as its primary file format, an XML-based format that followed after a previous XML-based format called «XML Spreadsheet». |
Technical details | The CSV file format is not standardized. The basic idea of separating fields with a comma is clear, but that idea gets complicated when the field data may also contain commas or even embedded line-breaks. CSV implementations may not handle such field data, or they may use quotation marks to surround the field. | OpenOffice.org has created documentation of the Excel format. Since then Microsoft made the Excel binary format specification available to freely download. |
File extension | .csv | .xls |
MIME | text/csv | application/vnd.ms-excel |
Developed by | Informational RFC | Microsoft |
Type of format | multi-platform, serial data streams | Spreadsheet |
Associated programs | Microsoft Excel, LibreOffice Calc | Microsoft Office, LibreOffice, Kingsoft Office, Google Docs. |
Wiki | https://en. wikipedia.org/wiki/Comma-separated_values | https://en.wikipedia.org/wiki/Microsoft_Excel#File_formats |
Если у вас есть файл формата CSV, то вы можете конвертировать его в другие форматы:
CSV to HTML
CSV to XLSX
CSV to ODS
Copyright © 2016-2022 fConvert.ru. All rights reserved.
English
python — конвертер xls в csv
спросил
Изменено 10 месяцев назад
Просмотрено 179 тысяч раз
Я использую win32.client в python для преобразования моих файлов .xlsx и .xls в .csv. Когда я выполняю этот код, он дает ошибку. Мой код:
def convertXLS2CSV (файл): '''преобразует файл MS Excel в csv с тем же именем в том же каталоге''' print "------ начало преобразования XLS в CSV ------" пытаться: импортировать win32com. client, ОС из win32com.client импортировать константы как c excel = win32com.client.Dispatch('Excel.Приложение') fileDir, fileName = os.path.split(aFile) nameOnly = os.path.splitext(fileName) новоеимя = только имя[0] + ".csv" outCSV = os.path.join(fileDir, newName) рабочая книга = excel.Workbooks.Open(файл) workbook.SaveAs(outCSV, c.xlCSVMSDOS) # 24 представляет xlCSVMSDOS книга. Закрыть (ложь) excel.Выйти() дель эксель print "...Конвертировано " + nameOnly + " в CSV" кроме: print ">>>>>>> НЕУДАЧА преобразовать " + aFile + " в CSV!" convertXLS2CSV("G:\\hello.xlsx")
Я не могу найти ошибку в этом коде. Пожалуйста помоги.
- Python
- Excel
- csv
- xls
- экспорт-в-csv
2
Я бы использовал xlrd — он быстрее, кроссплатформеннее и работает напрямую с файлом.
Начиная с версии 0.8.0, xlrd
читает файлы XLS и XLSX.
Но начиная с версии 2.0.0 поддержка была сокращена до только XLS.
импорт xlrd импортировать CSV определение csv_from_excel(): wb = xlrd.open_workbook('your_workbook.xls') sh = wb.sheet_by_name('Лист1') your_csv_file = open('your_csv_file.csv', 'wb') wr = csv.writer(ваш_csv_файл, цитирование=csv.QUOTE_ALL) для rownum в xrange(sh.nrows): wr.writerow (sh.row_values (rownum)) your_csv_file.close()
7
Я бы использовал панды
. Вычислительно тяжелые части написаны на cython или c-расширениях для ускорения процесса, а синтаксис очень чистый. Например, если вы хотите превратить «Лист1» из файла «your_workbook.xls» в файл «your_csv.csv», вы просто используете функцию верхнего уровня read_excel
и метод to_csv
из класса DataFrame
следующим образом:
import pandas as pd data_xls = pd. read_excel('your_workbook.xls', 'Лист1', index_col=Нет) data_xls.to_csv('ваш_csv.csv', кодировка='utf-8')
Настройка encoding='utf-8'
устраняет ошибку UnicodeEncodeError
, упомянутую в других ответах.
3
Может быть, кому-то этот готовый фрагмент кода покажется полезным. Это позволяет создавать CSV из всех электронных таблиц в книге Excel.
Python 2:
# --*- Кодировка: utf-8 --*- импорт xlrd импортировать CSV из системы импорта ОС Def csv_from_excel (excel_file): рабочая книга = xlrd.open_workbook (excel_file) all_worksheets = workbook.sheet_names() для worksheet_name в all_worksheets: рабочий лист = workbook.sheet_by_name (worksheet_name) с open(u'{}.csv'.format(worksheet_name), 'wb') как your_csv_file: wr = csv.writer(ваш_csv_файл, цитирование=csv.QUOTE_ALL) для rownum в xrange (worksheet. nrows): wr.writerow([unicode(entry).encode("utf-8") для записи в worksheet.row_values(rownum)]) если __name__ == "__main__": csv_from_excel (sys.argv [1])
Python 3:
импорт xlrd импортировать CSV из системы импорта ОС Def csv_from_excel (excel_file): рабочая книга = xlrd.open_workbook (excel_file) all_worksheets = workbook.sheet_names() для worksheet_name в all_worksheets: рабочий лист = workbook.sheet_by_name (worksheet_name) с open(u'{}.csv'.format(worksheet_name), 'w', encoding="utf-8") как your_csv_file: wr = csv.writer(ваш_csv_файл, цитирование=csv.QUOTE_ALL) для rownum в диапазоне (worksheet.nrows): wr.writerow (worksheet.row_values (rownum)) если __name__ == "__main__": csv_from_excel (sys.argv [1])
5
Я бы использовал csvkit, который использует xlrd (для xls) и openpyxl (для xlsx) для преобразования практически любых табличных данных в csv.
После установки с его зависимостями это вопрос:
python in2csv myfile > myoutput.csv
Он позаботится обо всех проблемах с определением формата, поэтому вы можете передать ему практически любой источник табличных данных. Он тоже кроссплатформенный (без зависимости от win32).
1
Сначала прочитайте вашу электронную таблицу Excel в pandas, нижеприведенный код импортирует вашу электронную таблицу Excel в pandas как тип OrderedDict, который содержит все ваши рабочие листы в виде фреймов данных. Затем просто используйте worksheet_name в качестве ключа для доступа к конкретному рабочему листу в качестве фрейма данных и сохраните только необходимый рабочий лист в виде файла csv с помощью df.to_csv(). Надеюсь, это сработает в вашем случае.
импортировать панд как pd df = pd.read_excel('YourExcel.xlsx', имя_листа=Нет) df['worksheet_name'].to_csv('YourCsv.csv')
Если ваш файл Excel содержит только один рабочий лист, просто используйте следующий код:
import pandas as pd df = pd. read_excel('ВашExcel.xlsx') df.to_csv('ВашCsv.csv')
Если кто-то хочет преобразовать все листы Excel из одной книги Excel в разные файлы csv, попробуйте следующий код:
import pandas as pd def excelTOcsv (имя файла): df = pd.read_excel (имя файла, имя_листа = нет) для ключа, значение в df.items(): вернуть df[key].to_csv('%s.csv' %key)
Эта функция работает как конвертер нескольких листов Excel одной и той же книги Excel в несколько файлов CSV. Где ключ — это имя листа, а значение — содержимое внутри листа.
@andi Я проверил ваш код, он отлично работает, НО
В моих таблицах есть такой столбец
2013-03-06T04:00:00
дата и время в той же ячейке экспорт, вот так в экспортируемом файле
41275.0416667
остальные столбцы в порядке.
csvkit, с другой стороны, нормально работает с этим столбцом, но экспортирует только ОДИН лист, а в моих файлах их много.
3
xlsx2csv на быстрее , чем pandas и xlrd.
xlsx2csv -s 0 crunchbase_monthly_.xlsx cruchbase
файл excel обычно имеет n имя листа.
-s - индекс имени листа.
затем будет создана папка cruchbase, каждый лист, принадлежащий xlsx, будет преобразован в один csv.
п.с. csvkit тоже классный.
0
Цитируя ответ Скотта Мина, который работает с книгой, содержащей несколько листов:
Вот скрипт python getsheets.py (зеркало), вы должны установить pandas
и xlrd
, прежде чем использовать его.
Запустите это:
pip3 install pandas xlrd # или `pip install pandas xlrd`
Как это работает?
$ python3 getsheets.py -h Использование: getsheets.py [ВАРИАНТЫ] INPUTFILE Преобразование файла Excel с несколькими листами в несколько файлов с одним листом. Примеры: имя файла getsheets getsheets имя файла -f csv Опции: -f, --format [xlsx|csv] По умолчанию xlsx. -h, --help Показать это сообщение и выйти.
Преобразование в несколько xlsx:
$ python3 getsheets.py goods_temp.xlsx Sheet.xlsx Готово! Sheet1.xlsx Готово! Все сделано!
Преобразование в несколько CSV:
$ python3 getsheets.py goods_temp.xlsx -f csv Лист.csv Готово! Sheet1.csv Готово! Все сделано!
getsheets.py
:
# --*- Кодировка: utf-8 --*- импортировать нажмите импорт ОС импортировать панд как pd def file_split (файл): s = файл.split('.') name = '.'.join(s[:-1]) # получить имя каталога возвращаемое имя def getsheets (входной файл, формат файла): имя = file_split (входной файл) пытаться: os.makedirs(имя) кроме: проходить df1 = pd.ExcelFile(входной файл) для x в df1.sheet_names: print(x + '.' + формат файла, 'Готово!') df2 = pd.read_excel (входной файл, имя листа = x) имя файла = os.path.join (имя, x + '.' + формат файла) если формат файла == 'csv': df2. to_csv (имя файла, индекс = ложь) еще: df2.to_excel (имя файла, индекс = ложь) print('\nВсе готово!') CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help']) @click.command(context_settings=CONTEXT_SETTINGS) @click.argument('входной файл') @click.option('-f', '--format', type=click.Choice([ 'xlsx', 'csv']), default='xlsx', help='Default xlsx.') def cli (входной файл, формат): '''Преобразование файла Excel с несколькими листами в несколько файлов с одним листом. Примеры: \б имя файла getsheets \б getsheets имя файла -f csv ''' если формат == 'csv': getsheets (входной файл, 'csv') еще: getsheets (входной файл, 'xlsx') Кли()
Мы можем использовать Pandas lib Python для преобразования файла xls в файл csv. Ниже код преобразует файл xls в файл csv. импортировать pandas как pd
Чтение файла Excel из локального пути:
df = pd.read_excel("C:/Users/IBM_ADMIN/BU GPA Scorecard.xlsx", имя_листа=1)
Обрезать пробелы в столбцах:
df. columns = df.columns.str.strip()
Отправить фрейм данных в файл CSV, который будет разделен символом вертикальной черты и не иметь индекса:
df.to_csv("C:/Users/IBM_ADMIN/BU GPA Scorecard csv.csv",sep="|",index=False)
1
Python не лучший инструмент для этой задачи. Я попробовал несколько подходов в Python, но ни один из них не работает на 100% (например, 10% преобразуются в 0,1, или типы столбцов испорчены и т. д.). Правильным инструментом здесь является PowerShell, потому что это продукт MS (как и Excel) и имеет наилучшую интеграцию.
Просто загрузите этот сценарий PowerShell, отредактируйте строку 47, указав путь к папке, содержащей файлы Excel, и запустите сценарий с помощью PowerShell.
Использование xlrd — ошибочный способ сделать это, поскольку вы теряете форматы даты в Excel.
Мой вариант использования следующий.
Возьмите файл Excel, содержащий более одного листа, и преобразуйте каждый из них в отдельный файл.
Я сделал это, используя библиотеку xlsx2csv и вызвав ее с помощью подпроцесса.
импорт CSV импортировать sys, os, json, re, время подпроцесс импорта защита csv_from_excel (fname): subprocess.Popen(["xlsx2csv" + fname + " --all -d '|' -i -p " "'<Новый лист>' > " + 'test.csv'], shell=True) возвращаться lstSheets = csv_from_excel (sys.argv [1]) time.sleep(3) # системе нужно подождать секунду, чтобы распознать, что файл был записан с open('[ВАШ ПУТЬ]/test.csv') как f: строки = f.readlines() первый лист = Истина для строки в строке: если line.startswith('<Новый лист>'): если первый лист: sh_2_fname = line.replace('<Новый лист>', '').strip().replace(' - ', '_').replace(' ','_') печать (sh_2_fname) sh3f = открыть (sh_2_fname+".csv", "w") первый лист = ложь еще: sh3f.close() sh_2_fname = line.replace('<Новый лист>', ''). strip().replace(' - ', '_').replace(' ','_') печать (sh_2_fname) sh3f = открыть (sh_2_fname+".csv", "w") еще: sh3f.write(строка) sh3f.close()
Я проверил все ответы, но все они были слишком медленными для меня. Если у вас установлен Excel, вы можете использовать COM.
Сначала я думал, что это будет медленнее, так как будет загружаться все для фактического приложения Excel, но это не для больших файлов. Может быть, потому что алгоритм открытия и сохранения файлов использует сильно оптимизированный скомпилированный код, ребята из Microsoft в конце концов зарабатывают на этом много денег.
система импорта импорт ОС импортировать глобус из win32com.client импортировать Dispatch деф основной (путь): excel = Отправка("Excel.Приложение") если is_full_path(путь): файл_процесса (Excel, путь) еще: файлы = глоб.глоб(путь) для file_path в файлах: файл_процесса (Excel, путь_к_файлу) excel. Выйти() def process_file (excel, путь): полный путь = os.path.abspath(путь) full_csv_path = os.path.splitext(полный путь)[0] + '.csv' рабочая книга = excel.Workbooks.Open (полный путь) workbook.Worksheets(1).SaveAs(full_csv_path, 6) книга. Сохранено = 1 книга.Закрыть() определение is_full_path (путь): вернуть path.find(":") > -1 если __name__ == '__main__': основной (sys.argv [1])
Это очень необработанный код, и он не будет проверять наличие ошибок, печатать справку или что-то еще, он просто создаст файл csv для каждого файла, который соответствует шаблону, введенному вами в функцию, поэтому вы можете пакетно обрабатывать множество файлов, только запуская приложение Excel один раз.
Как бы мне не хотелось полагаться на проприетарное программное обеспечение Windows Excel, которое не является кросс-платформенным, мое тестирование csvkit
для .xls, в котором используется xlrd
под капотом, не дало правильного анализа дат (даже при использовании параметры командной строки для указания формата strptime).
Например, этот файл xls при анализе с помощью csvkit
преобразует ячейку G1
из 31/12/2002
в 37621
, тогда как при преобразовании в CSV через ячейку excel -> save_as (используя ниже) G1
будет "31 декабря 2002"
.
импорт импорт ОС из win32com.client импортировать Dispatch кслКСВМСДОС = 24 класс CsvConverter (объект): def __init__(self, *, input_dir, output_dir): self._excel = Нет self.input_dir = входной_каталог self.output_dir = output_dir если не os.path.isdir(self.output_dir): os.makedirs(self.output_dir) def isSheetEmpty (я, лист): # https://archive.is/RuxR7 # WorksheetFunction.CountA(ActiveSheet.UsedRange) = 0 и ActiveSheet.Shapes.Count = 0 возвращаться \ (не self._excel.WorksheetFunction.CountA(лист.UsedRange)) \ а также \ (не лист.Shapes.Count) def getNonEmptySheets (self, wb, as_name = False): возвращаться [ \ (лист. Имя, если as_name иначе лист) \ для листа в wb.Sheets \ если не self.isSheetEmpty(лист) \ ] def saveWorkbookAsCsv (я, wb, csv_path): non_empty_sheet_names = self.getNonEmptySheets(wb, as_name=True) утверждать (len(non_empty_sheet_names) == 1), \ "Ожидается ровно 1 лист, но найдено %i непустых листов: '%s'" \ %( len(non_empty_sheet_names), "', '".join(name.replace("'", r"\'") для имени в non_empty_sheet_names) ) wb.Worksheets(non_empty_sheet_names[0]).Сохранитькак(csv_path, xlCSVMSDOS) wb.Сохранено = 1 def isXlsFilename (я, имя файла): return bool(re.search(r'(?i)\.xls$', имя файла)) def batchConvertXlsToCsv (сам): xls_names = tuple(имя файла для имени файла в следующем(os.walk(self.input_dir))[2] if self.isXlsFilename(имя файла)) self._excel = Отправка('Excel.Приложение') пытаться: для xls_name в xls_names: csv_path = os. path.join(self.output_dir, '%s.csv' %os.path.splitext(xls_name)[0]) если не os.path.isfile(csv_path): рабочая книга = self._excel.Workbooks.Open(os.path.join(self.input_dir, xls_name)) пытаться: self.saveWorkbookAsCsv (книга, csv_path) в конце концов: книга.Закрыть() в конце концов: если не len(self._excel.Workbooks): self._excel.Выйти() self._excel = Нет если __name__ == '__main__': сам = CsvConverter( input_dir='C:\\data\\xls\\', output_dir='C:\\data\\csv\\' ) self.batchConvertXlsToCsv()
Приведенный выше код возьмет input_dir
, содержащий .xls, и выведет их в output_dir
как .csv — будет утверждать
, что в .xls есть ровно 1 непустой лист; если вам нужно обработать несколько листов в несколько csv, вам нужно будет отредактировать saveWorkbookAsCsv
.
Я пытался использовать библиотеку xlrd
для преобразования формата xlsx
в csv
, но получаю сообщение об ошибке: xlrd.biffh.XLRDError: Excel xlsx file; не поддерживается
. Это произошло потому, что этот пакет больше не читает какой-либо другой формат, кроме xls
, согласно документации xlrd.
После ответа Криса Уизерса я смог изменить движок для функции read_excel()
с pandas
, затем я смог создать функцию, которая конвертирует любой лист из вашей электронной таблицы Excel, который вы хотите успешно .
Для работы функции ниже не забудьте установить openpyxl 9Библиотека 0034 отсюда.
Функция:
импорт ОС импортировать pathlib импортировать панд как pd # Функция для преобразования электронной таблицы Excel в формат csv определение Excel_to_csv(): # Полный путь к файлу Excel excel_file = os.path.join(os.path.sep, pathlib.Path(__file__).parent. resolve(), "Excel_Spreadsheet.xlsx") # листы Excel excel_sheets = ['Лист1', 'Лист2', 'Лист3'] для листа в excel_sheets: # Создаем фрейм данных для каждого листа df = pd.DataFrame(pd.read_excel(excel_file, лист, index_col=Нет, двигатель='openpyxl')) # Экспорт в csv. то есть: имя_листа.csv df.to_csv(os.path.join(os.path.sep, pathlib.Path(__file__).parent.resolve(), лист + '.csv'), sep=",", encoding='utf-8' , индекс = ложь, заголовок = правда) # Запускает функцию excel_to_csv: Excel_to_csv()
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Online XLS to CSV Converter
Вы также можете конвертировать XLS во многие другие форматы файлов.