2

我对 Python 编码比较陌生,这是我的问题: 1- 当我更新现有 .xlsx 文件的数据(使用 openpyxl)时,结果是 .xlsx 丢失了所有以前的格式。我也尝试过使用 .xls(使用 xlwt 和 xlrd),但没有任何改变。2- 所以,我决定保留这个未格式化的结果文件并应用模板 .xls(x) 文件的所有格式。

是否有直接的方法来保留步骤 1 中的格式?如果没有,我该如何实施第 2 步?

PS:我尝试使用 xlutils.styles 处理样式......但我没有设法......

谢谢你的帮助!

4

1 回答 1

0

您可以使用 xlrd 获取单元格的格式,并将其设置为您在 xlwt 中编写的单元格的样式。单元格的xf_index属性是 XFSt​​yle 对象的一个​​实例,可以直接转储到write方法的样式参数中,如下所示:

import xlwt,xlrd
readbook = xlrd.open_workbook('book.xls', formatting_info=True)
readsheet = readbook.sheet_by_index(0)
cell = sheet.cell(0,0)
writebook = xlwt.Workbook()
writesheet = writebook.add_sheet('sheet1')
writesheet.write(0,0,'First Cell', cell.xf_index)

从那里您可以迭代以匹配每个单元格的格式,也可以将每种格式写入行或列,如下所示:https://github.com/python-excel/xlwt/blob/master/xlwt/examples/row_styles。 py

于 2013-08-08T23:20:22.670 回答