使用openpyxl将文本框添加到Excel图表

时间:2016-09-29 14:49:55

标签: python openpyxl

我正在尝试将文本框添加到我使用openpyxl生成的图表中,但无法找到显示如何执行此操作的文档或示例。 openpyxl是否支持它?

2 个答案:

答案 0 :(得分:0)

我不确定“文本框”是什么意思。理论上,您可以将DrawingML规范所涵盖的任何内容添加到图表中,但实践可能略有不同。

但是,肯定没有内置的API,因此您必须首先创建一个示例文件并从它开始向后工作。

答案 1 :(得分:0)

我还无法弄清楚如何通过OpenPyXL做到这一点,但是您可以使用XLSXWriter添加文本框。

请注意,您可以同时使用OpenPyXL和XLSXWriter,但是重要的是要完成在OpenPyXL中所做的更改并保存/关闭工作簿,然后再在XLSXWriter中重新打开它并添加文本框。 (否则,很明显,您可以保存第二个软件包所做的任何更改(例如,文本框)。)

FWIW,至少在我的笔记本电脑上,测试工作簿在XLSXWriter中的打开速度比OpenPyXL中的更快。包含10个单页工作表的工作簿,其中充斥着公式,格式和数据-在OpenPyXL中加载需要8秒,在XLSXWriter中加载需要大约0.003秒。因此,即使处理数十个工作簿,第二次重新打开工作簿也没什么大不了的。

以下是使用XLSXWriter创建文本框的简单代码示例:

array([3., 3., 2., 2., 1., 1., 2., 2., 3., 3.])

更新:

自从上面发布代码以来,我一直在研究这个示例,我已经纠正了。 XLSXWriter文档当然演示了按照上述代码添加文本框,但是XLSXWriter无法对现有Excel工作簿进行更改。它只能创建新的工作簿-甚至不能使用现有的Excel工作簿作为模板。

我将尝试找到可以完成此操作的another package,但目前看来还不太好。

希望OpenPyXL(Charlie?)的好主意可以使用DrawingML specification提供几乎足够的解决方案,但在这一点上,这超出了我的能力。

https://xlsxwriter.readthedocs.io/faq.html