2015-01-29 2 views
2

Я запустил гамму и не могу найти то, что ищу. Все темы, которые я нашел здесь, оказались в тупиках для меня. xlrd, xlwt и xlutils почти делают то, что мне нужно, но ... Основная идея заключается в том, что мне нужно использовать Python для записи простых данных (строк) на конкретный лист шаблона Excel и выписать этот шаблон в новый .xls-файл ,Шаблон Python Excel читает и переписывает, поддерживая формулы и форматирование

Чтение в шаблоне, копирование его на новый объект книги, запись в новые значения и запись нового .xls-файла без проблем. Тем не менее, я не могу найти модуль Python Excel, который поддерживает формулы и форматирование.

`

our = 'template.xls' 

# open up read-only template with formatting maintained 
rb = open_workbook(our,formatting_info=True) 
r_sheet = rb.sheet_by_index(4) 

# copy this to a new workbook object 
wb = copy(rb) 

# 5th sheet (index = 4) is where we need to drop the data we have 
w_sheet = wb.get_sheet(4) 

# populate with new data! 
for row_index in range(0, r_sheet.nrows): 
    w_sheet.write(row_index, 1, "some string that is our data") 

# write it! 
wb.save('new.xls') 

`

При чтении в шаблоне, форматирование сохраняется (немного изменен для некоторых цветов;! Мех), но формулы нет, поэтому "new.xls" имеет пробелы повсюду, где когда-то стояли формулы.

Любая идея, как поддерживать как форматирование и формулы?

Примечание. Я заблокирован для Python 2.7.

ответ

4

Для этого вы можете использовать openpyxl - он поддерживает только xlsx (и связанные с ним форматы), а не xls (старый формат Excel).

https://pypi.python.org/pypi/openpyxl/

http://openpyxl.readthedocs.org/en/latest/

https://bitbucket.org/openpyxl/openpyxl/src/2.2/doc/source/index.rst

В этом пакете сохранить формулы при открытии/сохранить лист Excel. Также он сохраняет форматирование, но есть некоторые незначительные проблемы с ним. Однако изображения из исходного файла Excel не сохраняются.

Другие интересные функции включают поддержку условного форматирования, диаграмм, искровых линий и многое другое.

+0

Вы уверены, что openpyxl поддерживает искровые линии. Я не могу найти что-либо в документах ... – Ajasja

+0

Я, должно быть, прочитал его где-то, и, поскольку я использую другие функции в своем проекте, я должен был предположить, что искры также поддерживаются. –

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