動態

詳情 返回 返回

Python保存Excel文件中的圖表和形狀和圖片 - 動態 詳情

Excel文件常作為數據分析和展示的重要工具,承載複雜圖表、形狀等非結構化數據。當我們需要再利用這些圖形化內容元素時,手動逐項提取不僅效率低下,且難以應對大規模文件處理需求。通過Python實現自動化批量保存,能夠突破人工操作的侷限性,顯著提升數據管理的標準化水平——無論是定期生成的可視化報告存檔、跨部門協作中的元素複用,還是構建機器學習訓練所需的圖像數據集,自動化腳本均可確保元素提取的完整性與命名規範性。本文將介紹如何使用Python將Excel文件中的圖表和形狀保存為圖片,從而方便對其再利用。

  • 用Python將Excel文件中的圖表保存為圖片
  • 用Python將Excel文件中的圖表工作表保存為圖片
  • 用Python將Excel文件中的形狀保存為圖片

本文所使用的方法需要用到免費的Free Spire.XLS for Python,PyPI:pip install spire.xls.free

用Python將Excel文件中的圖表保存為圖片

庫中提供的Workbook.SaveChartAsImage()方法可以將指定工作表中的指定圖表或所有圖表保存為圖片流,然後我們再使用Stream.Save()方法將圖片流保存到文件,即可實現將Excel圖表導出為圖片文件。
需要注意的是,此方法不能保存圖表工作表(僅包含一個圖表且無單元格及其他數據的特殊工作表)為圖片,圖表工作表需要另外進行保存操作。
以下是操作步驟示例:

  1. 導入所需模塊:Workbook
  2. 創建Workbook對象,使用Workbook.LoadFromFile()載入Excel文件。
  3. 遍歷工作簿中的工作表,使用Workbook.Worksheets.get_Item()方法獲取工作表。
  4. 使用Worksheet.Charts屬性獲取工作表中的所有圖表。
  5. 遍歷工作表中的圖表,使用Workbook.SaveChartAsImage()方法將圖表保存為圖片流。
  6. 使用Stream.Save()方法圖片流保存為文件。
  7. 釋放資源。

代碼示例

from spire.xls import Workbook

# 創建Workbook對象
workbook = Workbook()

# 載入Excel文件
workbook.LoadFromFile("Sample.xlsx")

# 遍歷Excel文件中的工作表
for i in range(workbook.Worksheets.Count):
    # 獲取工作表
    worksheet = workbook.Worksheets.get_Item(i)
    # 遍歷工作表中的圖表
    for j in range(worksheet.Charts.Count):
        # 將圖表保存為圖片
        image = workbook.SaveChartAsImage(worksheet, j)
        # 將圖片保存到文件
        image.Save(f"output/Images/Sheet{i}_Chart{j}.png")

workbook.Dispose()

結果
Python保存Excel圖表為圖片

用Python將Excel文件中的圖表工作表保存為圖片

我們可以使用Workbook.ChartSheets屬性獲取工作簿中的所有圖表工作表,然後使用Workbook.SaveChartAsImage()方法將圖表工作表的圖表保存為圖片流,最後再保存為文件。以下是操作步驟示例:

  1. 導入所需模塊:Workbook
  2. 創建Workbook對象,使用Workbook.LoadFromFile()載入Excel文件。
  3. 使用Workbook.ChartSheets屬性獲取所有圖表工作表。
  4. 遍歷圖表工作表,並使用Workbook.SaveChartAsImage()方法將圖表工作表的圖表保存為圖片流。
  5. 使用Stream.Save()方法圖片流保存為文件。
  6. 釋放資源。

代碼示例

from spire.xls import Workbook, XlsShape

# 創建Workbook對象
workbook = Workbook()

# 載入Excel文件
workbook.LoadFromFile("Sample.xlsx")

# 遍歷Excel文件中的圖表工作表
for i in range(len(workbook.Chartsheets)):
    # 獲取圖表工作表
    sheet = workbook.Chartsheets[i]
    # 將圖表工作表保存為圖片流
    image = workbook.SaveChartAsImage(sheet)
    # 將圖片流保存為圖片文件
    image.Save(f"output/Images/Chart.png")

workbook.Dispose()

結果
Python導出Excel圖表工作表為圖片

用Python將Excel文件中的形狀保存為圖片

Worksheet.PrstGeomShapes屬性可以幫助我們獲取一個工作表中的所有形狀,我們可以遍歷獲取到的形狀,然後將其轉換為XlsShape對象並使用XlsShape.SaveToImage()方法將其保存為圖片流,最後實現Excel形狀保存為圖片的操作。以下是操作步驟示例:

  1. 導入所需模塊:Workbook
  2. 創建Workbook對象,使用Workbook.LoadFromFile()載入Excel文件。
  3. 遍歷工作簿中的工作表,使用Workbook.Worksheets.get_Item()方法獲取工作表。
  4. 使用Worksheet.PrstGeomShapes屬性獲取工作表中的所有形狀。
  5. 遍歷所有形狀,將其轉換為XlsShape對象,然後使用XlsShape.SaveToImage()方法將其保存為圖片流。
  6. 使用Stream.Save()方法圖片流保存為文件。
  7. 釋放資源。

代碼示例

from spire.xls import Workbook, XlsShape

# 創建Workbook對象
workbook = Workbook()

# 載入Excel文件
workbook.LoadFromFile("Sample.xlsx")

# 遍歷Excel文件中的工作表
for i in range(workbook.Worksheets.Count):
    # 獲取工作表
    worksheet = workbook.Worksheets.get_Item(i)
    # 遍歷工作表中的形狀
    for j in range(worksheet.PrstGeomShapes.Count):
        # 獲取形狀
        shape = worksheet.PrstGeomShapes.get_Item(j)
        # 將形狀轉換為XlsShape對象
        xlsShape = XlsShape(shape)
        # 將形狀保存為圖片流
        image = xlsShape.SaveToImage()
        # 將圖片流保存到文件
        image.Save(f"output/Images/Sheet{i}_Shape{j}.png")

workbook.Dispose()

結果
Python導出Excel形狀為圖片

本文演示瞭如何使用Python將Excel文件中的圖表、形狀以及圖表工作表保存為圖片文件。

Add a new 評論

Some HTML is okay.