Python實(shí)現(xiàn)將Excel中圖表形狀等內(nèi)容導(dǎo)出為圖片
微軟 Excel 是一個(gè)功能強(qiáng)大的數(shù)據(jù)分析和可視化工具,能夠幫助用戶創(chuàng)建各種圖表、形狀以及其他交互元素。在某些情況下,我們需要將這些可視化元素轉(zhuǎn)換為圖片,以便在演示文稿、報(bào)告或其他文檔中使用。手動(dòng)導(dǎo)出這些元素會(huì)比較繁瑣,尤其是在處理多個(gè)文件時(shí)。本文將探討如何使用 Python 自動(dòng)化地從 Excel 中提取圖表、形狀和其他元素,并將其保存為圖片,主要涵蓋內(nèi)容如下:
為什么將 Excel 中的圖表、形狀和其他元素導(dǎo)出為圖片?
將 Excel 中的圖表、形狀和其他元素轉(zhuǎn)換為圖片可以帶來很多好處,例如:
- 便于分享:圖片可以輕松嵌入電子郵件、演示文稿或其他文檔中,無需接收者安裝 Excel。
- 一致的格式:與可能在不同設(shè)備上呈現(xiàn)不同結(jié)果的 Excel 文件相比,圖片在各個(gè)環(huán)境中保持相同的外觀。
- 性能提升:靜態(tài)圖片的加載速度通??煊诮换ピ?。
- 增強(qiáng)安全性:圖片格式可以防止他人訪問或修改底層數(shù)據(jù),保護(hù)信息安全。
工具與設(shè)置
要在 Python 中將 Excel 中的圖表、形狀及其他元素保存為圖片,本文將使用 Spire.XLS for Python。該庫支持在Python中創(chuàng)建、操作和轉(zhuǎn)換Excel文件,同時(shí)無需依賴微軟Office 或其他軟件。
安裝Spire.XLS
Spire.XLS 提供了兩個(gè)版本,可以根據(jù)需求選擇合適的版本:
社區(qū)版:免費(fèi)使用,但每個(gè) .xls 文件限制為 200 行和 5 個(gè)工作表(.xlsx 文件沒有此限制)。
安裝命令:
pip install spire.xls.free
商業(yè)版:功能完備,但會(huì)添加水印。
安裝命令:
pip install spire.xls
安裝完成后,即可在Python應(yīng)用程序中調(diào)用該庫的API。
Python 將 Excel 圖表導(dǎo)出為圖片
Excel 文件可以包含嵌入的圖表(位于工作表內(nèi)的圖表)或圖表工作表(獨(dú)立圖表)。以下是使用 Python 導(dǎo)出這兩者為圖片的方法。
將圖表導(dǎo)出為圖片
要將 Excel 文件中嵌入的圖表保存或?qū)С鰹閳D片,參考以下步驟:
- 初始化 Workbook 類的對(duì)象,并使用 LoadFromFile() 方法加載 Excel 文件。
- 通過Workbook.Worksheets集合遍歷工作簿中的工作表。
- 通過Worksheet.Charts集合遍歷當(dāng)前工作表中的圖表。
- 使用 Chart.SaveToImage() 方法將每個(gè)圖表保存為圖片對(duì)象。
- 將圖片對(duì)象保存為指定格式的圖片文件(例如,PNG、JPEG)。
實(shí)現(xiàn)代碼
from spire.xls import * def save_charts_as_images(excel_file, output_directory): """ 將指定的 Excel 文件中的所有圖表導(dǎo)出為圖片,并保存到指定的輸出目錄。 參數(shù): excel_file (str): 包含圖表的 Excel 文件路徑。 output_directory (str): 圖片保存的目標(biāo)目錄路徑。 """ workbook = Workbook() workbook.LoadFromFile(excel_file) for sheet_index in range(workbook.Worksheets.Count): sheet = workbook.Worksheets[sheet_index] for i, chart in enumerate(sheet.Charts): image = chart.SaveToImage() image_path = f"{output_directory}/{sheet.Name}_圖表_{i}.png" image.Save(image_path) workbook.Dispose() # 用法示例 save_charts_as_images("示例.xlsx", "輸出目錄")
將圖表工作表導(dǎo)出為圖片
如果需要將Excel中的圖表工作表(獨(dú)立圖表)轉(zhuǎn)換為圖片,可以參考以下步驟:
- 初始化 Workbook 類的對(duì)象,并使用 LoadFromFile() 方法加載 Excel 文件。
- 通過Workbook.Chartsheets集合遍歷 Workbook 對(duì)象中的圖表工作表。
- 使用 Workbook 對(duì)象的 SaveChartAsImage() 方法將每個(gè)圖表工作表保存為圖片對(duì)象。
- 將圖片對(duì)象保存為指定格式的圖片文件(例如,PNG、JPEG)。
實(shí)現(xiàn)代碼
from spire.xls import * def save_chart_sheets_as_images(excel_file, output_directory): """ 將指定的 Excel 文件中的所有圖表工作表導(dǎo)出為圖片,并保存到指定的輸出目錄。 參數(shù): excel_file (str): 包含圖表工作表的 Excel 文件路徑。 output_directory (str): 圖片保存的目標(biāo)目錄路徑。 """ workbook = Workbook() workbook.LoadFromFile(excel_file) for i, chart_sheet in enumerate(workbook.Chartsheets): image = workbook.SaveChartAsImage(chart_sheet) image_path = f"{output_directory}/圖表工作表_{i}.png" image.Save(image_path) workbook.Dispose() # 用法示例 save_chart_sheets_as_images("示例.xlsx", "輸出目錄")
Python 將 Excel 中的形狀和其他元素導(dǎo)出為圖片
除了圖片以外,你還可以將多種 Excel 元素,如幾何形狀、形狀組合、文本框、復(fù)選框、列表框、組合框和單選按鈕等,導(dǎo)出為圖片。具體步驟如下:
- 初始化 Workbook 類的對(duì)象,并使用 LoadFromFile() 方法加載 Excel 文件。
- 遍歷工作簿中的工作表。
- 遍歷當(dāng)前工作表中的指定形狀或元素類型。
- 使用 SaveToImage() 方法將每個(gè)形狀或元素保存為圖片對(duì)象。
- 將圖片對(duì)象保存為指定格式的圖片文件(例如,PNG、JPEG)。
實(shí)現(xiàn)代碼
以下代碼展示了如何將Excel工作表中的幾何形狀導(dǎo)出為圖片:
from spire.xls import * def save_geometric_shapes_as_images(excel_file, output_directory): """ 將指定的 Excel 文件中的所有幾何形狀導(dǎo)出為圖片,并保存到指定的輸出目錄。 參數(shù): excel_file (str): 包含幾何形狀的 Excel 文件路徑。 output_directory (str): 圖片保存的目標(biāo)目錄路徑。 """ workbook = Workbook() workbook.LoadFromFile(excel_file) for sheet_index in range(workbook.Worksheets.Count): sheet = workbook.Worksheets[sheet_index] for i, shape in enumerate(sheet.PrstGeomShapes): image = shape.SaveToImage() image_path = f"{output_directory}/{sheet.Name}_幾何形狀_{i}.png" image.Save(image_path) workbook.Dispose() # 用法示例 save_geometric_shapes_as_images("示例.xlsx", "輸出目錄")
以下代碼展示了如何將Excel 文件中的文本框保存為圖片:
from spire.xls import * def save_textboxes_as_images(excel_file, output_directory): """ 將指定的 Excel 文件中的所有文本框?qū)С鰹閳D片,并保存到指定的輸出目錄。 參數(shù): excel_file (str): 包含文本框的 Excel 文件路徑。 output_directory (str): 圖片保存的目標(biāo)目錄路徑。 """ workbook = Workbook() workbook.LoadFromFile(excel_file) for sheet_index in range(workbook.Worksheets.Count): sheet = workbook.Worksheets[sheet_index] for i, shape in enumerate(sheet.TextBoxes): image = shape.SaveToImage() image_path = f"{output_directory}/{sheet.Name}_文本框_{i}.png" image.Save(image_path) workbook.Dispose() # 用法示例 save_textboxes_as_images("示例.xlsx", "輸出目錄")
到此這篇關(guān)于Python實(shí)現(xiàn)將Excel中圖表形狀等內(nèi)容導(dǎo)出為圖片的文章就介紹到這了,更多相關(guān)Python Excel內(nèi)容導(dǎo)出為圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python爬蟲庫BeautifulSoup遍歷文檔樹并對(duì)標(biāo)簽進(jìn)行操作詳解
今天為大家介紹下Python爬蟲庫BeautifulSoup遍歷文檔樹并對(duì)標(biāo)簽進(jìn)行操作的詳細(xì)方法與函數(shù)2020-01-01你知道怎么改進(jìn)Python 二分法和牛頓迭代法求算術(shù)平方根嗎
這篇文章主要介紹了Python編程實(shí)現(xiàn)二分法和牛頓迭代法求平方根代碼的改進(jìn),具有一定參考價(jià)值,需要的朋友可以了解下,希望能夠給你帶來幫助2021-08-08Python命令行參數(shù)解析之a(chǎn)rgparse模塊詳解
這篇文章主要介紹了Python命令行參數(shù)解析之a(chǎn)rgparse模塊詳解,argparse?是?Python?的一個(gè)標(biāo)準(zhǔn)庫,用于命令行參數(shù)的解析,這意味著我們無需在代碼中手動(dòng)為變量賦值,而是可以直接在命令行中向程序傳遞相應(yīng)的參數(shù),再由變量去讀取這些參數(shù),需要的朋友可以參考下2023-08-08python Pandas高級(jí)功能之?dāng)?shù)據(jù)透視表和字符串操作
Pandas是Python中用于數(shù)據(jù)處理和分析的強(qiáng)大庫,這篇文章將深入探討Pandas庫的高級(jí)功能:數(shù)據(jù)透視表和字符串操作,需要的朋友可以參考下2023-07-07Python中強(qiáng)大的命令行庫click入門教程
click是Python的一個(gè)命令行工具,極其好用。不信?一試便知。下面這篇文章主要給大家介紹了Python中強(qiáng)大的命令行庫click,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。2016-12-12