簡體   English   中英

使用openpyxl將文本框添加到Excel圖表

[英]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規范提供足夠接近的解決方案,但此時這超出了我自己的能力范圍。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM