2015-06-22 6 views
1

У меня есть веб-приложение (на основе Django 1.5), в котором пользователь загружает файл электронной таблицы.Как читать/записывать файлы xlsx и xls в Python?

Я использовал xlrd для управления файлами xls и посмотрел на openpyxl, который утверждает, что поддерживает файлы xlsx/xlsm.

Итак, существует ли распространенный способ чтения/записи файлов xls и xlsx?

Другим вариантом может быть преобразование загруженного файла в xls и использование xlrd. Для этого я просмотрел gnumeric и ssconvert, это было бы выгодно, так как весь мой существующий код написан с использованием xlrd, и мне не придется менять существующую кодовую базу.

Должен ли я изменить библиотеку, которую я использую или использую для решения конверсии?

Заранее спасибо.

+0

Проверьте, подходит ли xlwings для вашей цели. (http://xlwings.org/) –

ответ

1

xlrd может читать как файлы xlsx, так и xls, поэтому, вероятно, это проще всего использовать. Поддержка xlsx не столь обширна, как openpyxl, но должна быть достаточной.

Существует риск потери информации при преобразовании xlsx в xls, поскольку файлы xlsx могут быть намного большими.

+0

Когда я использовал xlrd для разбора моих xlsx-файлов, он выбросил ошибку утверждения, по сути исключая xlrd. – aliasav

+0

Я мало знаю о xlrd. Возможно, вы сможете обойти ошибку утверждения, если вы запустите Python в оптимизированном режиме. Возможно, вы захотите отправить ошибку. хотя запрос на растяжение будет лучше. Вы можете попробовать запустить файлы через безгонный OpenOffice, чтобы нормализовать их до одного формата или другого. В противном случае вам, вероятно, придется использовать обе библиотеки. API-интерфейсы аналогичны, но различаются в некоторых важных областях: в частности, openpyxl использует 1-индексацию. –

+0

Выключает openpyxl не совместим с файлами xls, я думаю, что преобразование - мой лучший выбор на данный момент, мне придется переносить xlrd-код на openpyxl когда-нибудь. – aliasav

Смежные вопросы