我已经运行了全部范围,似乎无法找到我正在寻找的东西。我在这里找到的所有主题对我来说都是死路一条。 xlrd,xlwt和xlutils几乎可以满足我的需要,但是......基本思想是我需要使用Python将简单数据(字符串)写入特定的Excel模板,并将该模板写入新的.xls文件。
在模板中读取,将其复制到新的工作簿对象,写入新值,并写出新的.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')
`
当在模板中阅读时,格式保持不变(对于某些颜色略有改变; meh!),但公式不是,所以“new.xls”在公式曾经存在的地方都有空白。
知道如何维护两种格式和公式吗?
注意,我已经锁定了Python 2.7。
答案 0 :(得分:6)
您可以使用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文件中的图像。
其他很酷的功能包括支持条件格式,图表,迷你图等等。