Комментарии 57
выступлю в роли грамарнаци.
«Обрабываем Excel файлы, используя Python» или «Обработка Excel файлов с использованием Python»
«Обрабываем Excel файлы, используя Python» или «Обработка Excel файлов с использованием Python»
-1
Спасибо, пригодилось — только что поставили мне такую задачу — чтение и запись Excel файлов.
0
Вам была поставлена задача сделать это именно питоном?
ИМХО с помощью ВБА это все делается быстрее, легче и правильнее.
ИМХО с помощью ВБА это все делается быстрее, легче и правильнее.
-8
У меня стояла задача работать с excel файлами под ОС FreeBSD.
Это кусочек серверной части.
Это кусочек серверной части.
+11
ИМХО использовать VB* хоть для чего-то само по себе извращение, какое поискать ещё надо.
+11
Для макросов в офисе и .vbs скриптов — вполне.
0
Хм, сомнительное удовольствие после perl и bash использовать VBS. Да и просто сомнительное удовольствие использовать VBS.
+7
имхо любой инструмент имеет право на существование,
и для любого инструмента найдутся задачи, которые им удобно решать
и для любого инструмента найдутся задачи, которые им удобно решать
+1
А почему нельзя было просто файл скопировать?
+2
А есть что-нить хорошее, для вордовских файлов? Гос учреждения требують...=(
+1
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Есть Microsoft Office WebApps, которые интегрируются с SharePoint — и на портале можно прямо через браузер и смотреть и редактировать и ворд, и ексель, и даже аксесс. Это IMHO интереснее, чем простая конвертация в HTML.
-8
У Microsoft все продукты между собой взаимосвязаны. Но что делать если на сервере стоит не Windows Server. А поднимать Mono и разворачивать SharePoint для задачи совсем не актуально.
+3
<sarcasm&bt;Поднять Windows Server на виртуалке!</sarcasm&bt;
На самом деле тогда действительно остается только конвертить. Хотя использовать для этого тяжелющий OpenOffice — это IMHO как из пушки по воробьям. Уж лучще какие-нибудь более легкие решения использовать — вот типа как библиотеки из топика.
На самом деле тогда действительно остается только конвертить. Хотя использовать для этого тяжелющий OpenOffice — это IMHO как из пушки по воробьям. Уж лучще какие-нибудь более легкие решения использовать — вот типа как библиотеки из топика.
-2
Начиная с офиса 2007 Мелкомягкие продавили новый формат документа OpenXML, точнее не то что бы он был новый есть замечательный формат ODF который теже мелкомягкие проигнорировали, но суть не в этом, OpenXML это по сути zip архив в котором лежат обычные xml файлы, теперь не нужно корячится чтобы создать/изменить документ офиса, можно воспользоваться всем функционалом презентаций, електронных таблиц и документов просто изменив xml внутри архива, а как это сделать читаем стандарт OpenXML на 4тысячи страниц). Благо Микрософт вставил туда уйму примеров…
+1
У Джоэла в послелдей книге есть цела глава о том почему не стоит программно писать в файлы формата xls, doc и т.д. — почитайте любопытно.
Вам действительно не подходил стандартный svc формат?
В целом стать хорошая, спасибо — либа может оказаться полезной многим.
Вам действительно не подходил стандартный svc формат?
В целом стать хорошая, спасибо — либа может оказаться полезной многим.
+1
угу, cvs + awk — никаких xls
0
Проблема в том что пользователи отправляют на вход файлы разных форматов.
Один из форматов, которые необходимо поддерживать как раз Excel.
Система также понимает txt и csv формат.
И на выходе пользователи хотят видеть данные в том формате,
в котором они подали их на вход. Но уже обработанные.
Один из форматов, которые необходимо поддерживать как раз Excel.
Система также понимает txt и csv формат.
И на выходе пользователи хотят видеть данные в том формате,
в котором они подали их на вход. Но уже обработанные.
+2
Проблема в том, что при выходе новой версии ms office нужно будет обновлять соответствующие пакеты на сервере. Не факт, что либа к тому времени будет еще поддерживаться или же обновления придется ждать значительное время. А сказать, что «мы не поддерживаем версию ms office выше N» сродни тому чтобы сказать «мы не поддерживаем xls». Ну и говоря, что вы поддерживаете формат xls — вы тем самым подписываетесь под тем, что весь функционал из исходного документа будет перенесен в результирующий. Это так? Макросы, диаграммы и.т.д?
0
Вероятность наличия макросов и диаграмм в исходном документе мала.
Данное решение не поддерживает перенос всего этого.
Скорее формат xls используется пользователями, как привычный формат
формирования данных в таблицы. Пользователи не заботятся о том, в каком формате они сохранили данные. Это решение было призвано облегчить им немного жизнь.
Не могу с Вами не согласится по поводу поддержки формата xls.
Данное решение не поддерживает перенос всего этого.
Скорее формат xls используется пользователями, как привычный формат
формирования данных в таблицы. Пользователи не заботятся о том, в каком формате они сохранили данные. Это решение было призвано облегчить им немного жизнь.
Не могу с Вами не согласится по поводу поддержки формата xls.
0
в новых же версиях он уже не xls, а xlsx.
+1
За наводку на книгу спасибо, почитаю.
0
НЛО прилетело и опубликовало эту надпись здесь
Моногоуважаемые, подскажите пожалуйста простой способ превращать xls в csv utf-8 средствами питона?
0
Как то так, но работу скрипта не проверил:
import xlrd
fp = open("my.csv","wb")
rb = xlrd.open_workbook('my.xls')
sheet = rb.sheet_by_index(0)
for rownum in range(sheet.nrows):
row = sheet.row_values(rownum)
c_row=[]
for c_el in row:
c_row.append(c_el)
fp.write(";".join(c_row))
fp.close()
+1
Все же для записи CSV лучше использовать docs.python.org/library/csv.html т.к. всякие экранирования символов и т.п. нужны на случай если в ячейке вдруг попадется точка с запятой/запятая
+2
Как раз вовремя — решаю подобную задачу. Спасибо.
0
А еще была библиотека pyExcelerator, правда ее автор забросил
0
В прошлом году стояла подобная задача: есть некий excelевский шаблон со всевозможными стилями, картинками и формулами. Его нужно использовать как основу для отчетов.
Выявились проблемы:
1) xlrd не умеет понимать формулы и картинки.
2) xwlt не может менять документы.
Таким образом, чтобы постороить отчет его необходимо полностю написать в объектах xwlt, но так как xlrd не умеет полностью прочитать шаблон, эта задача становится невозможной.
В итоге поставленную задачу решили по средсвам Apache POI
Прошу меня поправить, если я не прав и сейчас поведение библиотеки изменилось.
Выявились проблемы:
1) xlrd не умеет понимать формулы и картинки.
2) xwlt не может менять документы.
Таким образом, чтобы постороить отчет его необходимо полностю написать в объектах xwlt, но так как xlrd не умеет полностью прочитать шаблон, эта задача становится невозможной.
В итоге поставленную задачу решили по средсвам Apache POI
Прошу меня поправить, если я не прав и сейчас поведение библиотеки изменилось.
0
Так и не смог понять, по какому там принципу округление работает. У меня вместо n-значного числа его нормализованное представление. Буду признателен за советы.
0
Atlete, спасибо за статью, готовое решение сэкономило час-другой времени.
0
А как можно при создании документа xlwt, сделать внутри одной ячейки принудительный перенос строки.
Например:
ws.write(0, 0, 'Test1 Test2')
Что бы в одной ячейки было записано:
Test1
Test2
Например:
ws.write(0, 0, 'Test1 Test2')
Что бы в одной ячейки было записано:
Test1
Test2
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Обработка Excel файлов с использованием Python