Python Excel 模板读取和重写,维护公式和格式

问题描述 投票:0回答:1

我已经查遍了所有内容,但似乎找不到我要找的东西。我在这里找到的所有线索对我来说最终都陷入了死胡同。 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')

在模板中阅读时,格式会保持不变(某些颜色略有改变;嗯!),但公式不会,因此“new.xls”在公式曾经存在的地方到处都是空白。

知道如何维护两者格式和公式吗?

注意,我被锁定在 Python 2.7 中。

python excel xlrd xlwt xlutils
1个回答
7
投票

您可以使用

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 文件中的图像不会保留。

其他很酷的功能包括对条件格式、图表、迷你图等的支持。

© www.soinside.com 2019 - 2024. All rights reserved.