【问题标题】:Python - Apply the formatting of an existing workbook to another workbookPython - 将现有工作簿的格式应用于另一个工作簿
【发布时间】:2013-04-03 09:15:27
【问题描述】:

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

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

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

感谢您的帮助!

【问题讨论】:

  • 目前对直接处理 Excel 文件(没有 Excel 本身)的 Python 包的格式支持非常薄弱。如果您要在装有 Excel 的机器上执行此操作,那么您现在最好的选择(如果您想坚持使用 Python)是使用 pywin32pywinauto 之类的东西。如果您对非 Python 选项持开放态度,VBScript 实际上还不错,并且它已经包含在机器上。

标签: python excel excel-2007 xlwt openpyxl


【解决方案1】:

您可以使用 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

【讨论】:

    猜你喜欢
    • 2017-09-18
    • 2013-10-23
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多