我对Python编码相对较新,这是我的问题: 1-当我更新现有.xlsx文件的数据(使用openpyxl)时,结果是.xlsx会丢失所有以前的格式。我也试过.xls(使用xlwt和xlrd),但没有改变。 2-所以,我决定保留这个未格式化的结果文件并应用模板.xls(x)文件的所有格式。
是否有直接的方法来保留第1步的格式?如果没有,我该如何实施第2步?
P.S:我试图用xlutils.styles处理样式......但我没有设法...感谢您的帮助!
答案 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