阅读工作表并保留条件格式

nitin

我正在尝试使用openpyxl阅读excel工作表。我认为这样阅读时会丢失工作表中的条件格式信息:

xl = openpyxl.load_workbook(filename)

当我读取文件中的所有单元格并将其保存时。我得到一个电子表格,其中没有条件格式的实现。

我可以在http://openpyxl.readthedocs.org/en/latest/formatting.html找到许多将条件格式添加到电子表格的方法。

但是我找不到在现有工作表中读取条件格式信息的方法。

我用于执行读写操作的特定代码是,

import openpyxl as xl

xlf = xl.load_workbook(r'd:\test\book1.xlsx')
sh = xlf.get_sheet_by_name('Sheet1')
allcells = sh.get_cell_collection()

wb = xl.Workbook()
ws = wb.create_sheet()

for c in allcells:
    row = c.row
    col = xl.cell.column_index_from_string(c.column)
    new_cell = ws.cell(row=row, column=col)
    new_cell.value = c.value
    new_cell.style = c.style.copy()

ws.title = 'test'
wb.save(r'd:\test\book1w.xlsx')
亚历杭德罗

我真的很近,但是我无法保持原色。仍然存在错误,但是如果不是填充选择,至少以下内容会添加保持条件格式设置规则:

for range_string in sh.conditional_formatting.cf_rules:
    for cfRule in sh.conditional_formatting.cf_rules[range_string]:
        ws.conditional_formatting.add(range_string, cfRule)

使用这种衬管可以达到相同的效果(但最终结果相同):

ws.conditional_formatting.update(sh.conditional_formatting.cf_rules)

现在,如果您Manage Rules在excel中打开规则,这些规则都已存在,但是当您打开文件时,它需要自动修复,并且颜色消失了。这是超级有用的日志(讽刺意味在这里):

<repairedRecord>Repaired Records: Conditional formatting from /xl/worksheets/sheet2.xml</repairedRecord></repairedRecords>

当我尝试直接复制conditional_formatting的三个属性时,我得到了类似的结果

ws.conditional_formatting.cf_rules = sh.conditional_formatting.cf_rules.copy()
ws.conditional_formatting.max_priority = sh.conditional_formatting.max_priority
ws.conditional_formatting.parse_rules = sh.conditional_formatting.parse_rules.copy()

我一直在寻找想法源代码

编辑

有一种非常简单的选择。不要创建全新的工作簿和工作表并从头开始使用它们。只需根据需要修改原始文件,然后将其另存为其他名称即可。或者甚至可以通过将其另存为其他名称来创建副本,然后修改副本。这将保留所有格式规则。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

仅保留条件重复的条目

来自分类Dev

即使相关接口出现故障,如何在路由表中保留条目?

来自分类Dev

复制工作表后,删除公式并保留值/格式

来自分类Dev

Google工作表中的条件格式用于完成/到期的任务

来自分类Dev

使用熊猫在Excel工作表中过滤条件格式

来自分类Dev

条件格式 + 复制到其他工作表

来自分类Dev

如何将每个工作表复制到新工作簿中并保留格式

来自分类Dev

使用条件格式从工作表中复制行并使用新工作表的CF

来自分类Dev

如何使用保留格式和注释的可写单元格保护工作表

来自分类Dev

修改 VBA 以便将表格转移到新工作表也可以保留格式

来自分类Dev

在Powershell中阅读Excel工作表

来自分类Dev

基于另一张工作表上的值的工作表上单元格的条件格式(颜色)

来自分类Dev

保留剪切粘贴的条件格式

来自分类Dev

条件格式,基于整行,适用于其他工作表-Excel 2010

来自分类Dev

Python xlsxwriter模块:在多个工作表上遍历同一组格式和条件

来自分类Dev

使用另一个工作表中的列表进行条件格式

来自分类Dev

使用其他工作表的单元格值基于相对引用的Google表格条件格式

来自分类Dev

基于另一个工作表中的下拉菜单的条件格式

来自分类Dev

以编程方式为C#,Vsto中的给定工作表确定条件格式公式的结果

来自分类Dev

基于另一个工作表Excel中的数据的条件格式

来自分类Dev

基于另一个工作表的独立条件格式

来自分类Dev

excel条件格式单元格(如果单独的工作表包含匹配的单元格)

来自分类Dev

Python xlsxwriter模块:遍历多个工作表上的同一组格式和条件

来自分类Dev

通过其他工作表在Excel中进行条件格式设置

来自分类Dev

使用条件格式在Google表格中突出显示整个工作表中的“部分”重复项

来自分类Dev

比较两个单独的Excel工作表中的数据-条件格式

来自分类Dev

基于多张工作表中的 5 列的条件格式 1 列

来自分类Dev

来自另一张工作表的列表中的 Google 表格条件格式

来自分类Dev

格式表无法正常工作

Related 相关文章

  1. 1

    仅保留条件重复的条目

  2. 2

    即使相关接口出现故障,如何在路由表中保留条目?

  3. 3

    复制工作表后,删除公式并保留值/格式

  4. 4

    Google工作表中的条件格式用于完成/到期的任务

  5. 5

    使用熊猫在Excel工作表中过滤条件格式

  6. 6

    条件格式 + 复制到其他工作表

  7. 7

    如何将每个工作表复制到新工作簿中并保留格式

  8. 8

    使用条件格式从工作表中复制行并使用新工作表的CF

  9. 9

    如何使用保留格式和注释的可写单元格保护工作表

  10. 10

    修改 VBA 以便将表格转移到新工作表也可以保留格式

  11. 11

    在Powershell中阅读Excel工作表

  12. 12

    基于另一张工作表上的值的工作表上单元格的条件格式(颜色)

  13. 13

    保留剪切粘贴的条件格式

  14. 14

    条件格式,基于整行,适用于其他工作表-Excel 2010

  15. 15

    Python xlsxwriter模块:在多个工作表上遍历同一组格式和条件

  16. 16

    使用另一个工作表中的列表进行条件格式

  17. 17

    使用其他工作表的单元格值基于相对引用的Google表格条件格式

  18. 18

    基于另一个工作表中的下拉菜单的条件格式

  19. 19

    以编程方式为C#,Vsto中的给定工作表确定条件格式公式的结果

  20. 20

    基于另一个工作表Excel中的数据的条件格式

  21. 21

    基于另一个工作表的独立条件格式

  22. 22

    excel条件格式单元格(如果单独的工作表包含匹配的单元格)

  23. 23

    Python xlsxwriter模块:遍历多个工作表上的同一组格式和条件

  24. 24

    通过其他工作表在Excel中进行条件格式设置

  25. 25

    使用条件格式在Google表格中突出显示整个工作表中的“部分”重复项

  26. 26

    比较两个单独的Excel工作表中的数据-条件格式

  27. 27

    基于多张工作表中的 5 列的条件格式 1 列

  28. 28

    来自另一张工作表的列表中的 Google 表格条件格式

  29. 29

    格式表无法正常工作

热门标签

归档