[英]Adding a text box to an excel chart using openpyxl
我正在尝试将文本框添加到我使用openpyxl生成的图表中,但无法找到显示如何执行此操作的文档或示例。 openpyxl支持吗?
我不确定你的意思是“文本框”。 从理论上讲,您可以将DrawingML规范所涵盖的任何内容添加到图表中,但实践可能略有不同。
但是,肯定没有内置的API,因此您必须首先创建一个示例文件并从中向后工作。
我也无法通过OpenPyXL弄清楚如何做到这一点,但你可以使用XLSXWriter添加一个文本框。
请注意,您可以同时使用OpenPyXL和XLSXWriter,但在XLSXWriter中重新打开并添加文本框之前,完成您在OpenPyXL中所做的更改并保存/关闭工作簿非常重要。 (否则,说明显而易见的,您可以保存第二个包所做的任何更改(例如文本框)。)
FWIW,至少在我的笔记本电脑上,测试工作簿在XLSXWriter中比在OpenPyXL中更快地打开了waaaaaay。 一个包含10个单页工作表的工作簿,其中包含公式,格式,数据 - 在OpenPyXL中加载需要8秒,在XLSXWriter中需要大约.003秒。 因此,即使处理了数十本工作簿,第二次重新打开工作簿也不是什么大不了的事。
以下是使用XLSXWriter创建文本框的简单代码示例:
import xlsxwriter as xlwr
xlwrwb = xlwr.Workbook('c:\myworkbook.xlsx')
xlwrsheet = xlwrwb.get_worksheet_by_name(sheet.title)
rrow = 10
ccol = 8
ttxt = "This is an example textbox created by OpenPyXL."
xlwropts = {
'width': 400,
'height':200,
'fill': {'color': '#EEE8AA'},
'align': {'vertical': 'middle', 'horizontal': 'center'},
'font': {'bold': True, 'name': 'Arial', 'size': 16, 'color':'orange'},
}
xlwrsheet.insert_textbox(rrow,ccol,ttxt, xlwropts)
xlwrwb.close()
自从发布上面的代码以来,我一直在研究这个例子。 XLSXWriter文档肯定会演示如上所述添加文本框,但XLSXWriter无法更改现有的Excel工作簿。 它只能创建新的工作簿 - 它甚至不能使用现有的Excel工作簿作为模板。
我将尝试找到另一个可以做到这一点的软件包 ,但此时它看起来不太好。
这里希望OpenPyXL(Charlie?)的优秀思想可以使用DrawingML规范提供足够接近的解决方案,但此时这超出了我自己的能力范围。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.