ghy*_*yde 5 excel charts openpyxl
我使用 openpyxl 库创建了一个简短的 python 脚本,用于将一些数据添加到现有工作簿,然后保存更改。现有的工作簿有许多图表,其中一些需要透明的图表区域背景,并且由于设计原因,所有这些图表的边框都已关闭。
当我打开编辑的文件时,与图表区域的边框和填充图案有关的所有图表样式都将重置为“自动”。有没有办法防止这种情况发生?或者也许有一种方法可以在保存之前访问工作簿对象中的图表集合并以编程方式为每个图表设置这些属性?
不幸的是openpyxl,它不会编辑文件,而是xlsx再次读取并重新创建整个文件。如果您比较这两个文件,您会发现巨大的差异
$ tree\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 [Content_Types].xml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _rels\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 docProps\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 app.xml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 core.xml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 xl\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _rels\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 workbook.xml.rels\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 charts\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _rels\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 chart1.xml.rels\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 chart1.xml\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 colors1.xml\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 style1.xml\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 drawings\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _rels\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 drawing1.xml.rels\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 drawing1.xml\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 sharedStrings.xml\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 styles.xml\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 theme\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 theme1.xml\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 workbook.xml\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 worksheets\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _rels\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 sheet1.xml.rels\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 sheet1.xml\n\n11 directories, 16 files\nRun Code Online (Sandbox Code Playgroud)\n\nopenpyxl没有任何改变$ tree\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 [Content_Types].xml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _rels\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 docProps\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 app.xml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 core.xml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 xl\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _rels\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 workbook.xml.rels\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 charts\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 chart1.xml\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 drawings\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _rels\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 drawing1.xml.rels\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 drawing1.xml\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 styles.xml\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 theme\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 theme1.xml\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 workbook.xml\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 worksheets\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _rels\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 sheet1.xml.rels\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 sheet1.xml\n\n10 directories, 12 files\nRun Code Online (Sandbox Code Playgroud)\n\n正如您所看到的colors1.xml,并且style1.xml不会被持久化。这是因为openpyxl不是 100% 实现该xlsx格式
所以你的选择是使用 COM 对象(如果是 Windows)
\n\n使用openpyxl编辑Excel2007文件(.xlsx)而不改变其自身样式?
\n| 归档时间: |
|
| 查看次数: |
3346 次 |
| 最近记录: |