Python - 将现有工作簿的格式应用于另一个工作簿

时间:2013-04-11 08:44:48

标签: python excel excel-2007 xlwt openpyxl

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

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

P.S:我试图用xlutils.styles处理样式......但我没有设法...

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用xlrd获取单元格的格式,并将其设置为您在xlwt中编写的单元格的样式。单元格的xf_index属性是XFStyle对象的一个​​实例,可以直接转储到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