使用Python讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表
引言
可視化數(shù)據(jù)已成為提高演示文稿專業(yè)度的關(guān)鍵因素之一。使用Python從Excel讀取數(shù)據(jù)并在PowerPoint幻燈片中創(chuàng)建圖表不僅能夠極大地簡化圖表創(chuàng)建過程,還能確保數(shù)據(jù)的準確性和圖表的即時性。通過Python這一橋梁,我們可以輕松實現(xiàn)數(shù)據(jù)自動化處理和圖表生成,進而提升演示文稿的質(zhì)量和效率。本文將演示如何使用Python讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表,以及將Excel圖表以圖片形式插入到幻燈片中。
本文所用的方法需要用到Spire.Presentation for Python和Spire.XLS for Python,PyPI:pip install Spire.Presentation Spire.XLS。
讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表
我們可以通過讀取Excel工作表數(shù)據(jù),然后在幻燈片中創(chuàng)建一個圖表并將讀取數(shù)據(jù)設(shè)置為圖表的數(shù)據(jù),最后進行縱橫坐標設(shè)置,來實現(xiàn)讀取Excel數(shù)據(jù)在演示文稿中創(chuàng)建圖表。
操作步驟示例:
- 導入所需模塊。
- 創(chuàng)建
Presentation實例,使用Presentation.SlideSize.Type屬性設(shè)置幻燈片大小。 - 創(chuàng)建
Workbook實例,并使用Workbook.LoadFromFile()載入Excel文件。 - 使用
ISlide.Shapes.AppendChart()方法在默認幻燈片中創(chuàng)建一個圖表,并使用IChart.ChartData.Clear(0, 0, 5, 5)方法清除圖表的示例數(shù)據(jù)。 - 通過
Worksheet.AllocatedRange[].Text讀取表頭和列頭文本,并通過IChart.ChartData[].Text屬性將其設(shè)置為圖表數(shù)據(jù)的表頭和列頭。 - 遍歷工作表的數(shù)據(jù)行和數(shù)據(jù)列,使用
Worksheet.AllocatedRange[].NumberValue屬性讀取數(shù)據(jù),并通過IChart.ChartData[].NumberValue將其設(shè)置為圖表數(shù)據(jù)對應單元格的數(shù)據(jù)。 - 使用
IChart.ChartTitle下的屬性設(shè)置圖表標題。 - 使用
IChart.Series.SeriesLabel和IChart.Categories.CategoryLabels設(shè)置圖表系列和類別對應的單元格范圍。 - 使用
IChart.Series.get_Item().Values設(shè)置系列對應的數(shù)據(jù)單元格范圍。 - 使用
Worksheet.AllocatedRange[].NumberFormat屬性讀取Excel數(shù)據(jù)單元格的數(shù)字格式,并通過IChart.PrimaryValueAxis.NumberFormat將其設(shè)置為圖表縱坐標的數(shù)字格式。 - 設(shè)置圖表重疊和間隔寬度。
- 使用
Presentation.SaveToFile()保存演示文稿。 - 釋放資源。
代碼示例
from spire.presentation import Presentation, FileFormat, SlideSizeType, RectangleF, ChartType, ChartStyle, FillFormatType
from spire.xls import Workbook
# 創(chuàng)建Presentation實例
presentation = Presentation()
# 設(shè)置幻燈片尺寸
presentation.SlideSize.Type = SlideSizeType.Screen16x9
# 創(chuàng)建Workbook實例
workbook = Workbook()
# 加載Excel文件
workbook.LoadFromFile("示例.xlsx")
# 獲取第一個工作表
sheet = workbook.Worksheets.get_Item(0)
# 向第一張幻燈片添加圖表
rect = RectangleF.FromLTRB(50, 100, presentation.SlideSize.Size.Width - 50, presentation.SlideSize.Size.Height - 50)
slide = presentation.Slides.get_Item(0)
chart = slide.Shapes.AppendChart(ChartType.Area, rect)
# 清除默認的虛擬數(shù)據(jù)
chart.ChartData.Clear(0, 0, 5, 5)
# 將工作表的標題列和標題行復制到圖表
for i in range(sheet.AllocatedRange.ColumnCount):
chart.ChartData[0, i].Text = sheet.AllocatedRange[1, i + 1].Text
for j in range(sheet.AllocatedRange.RowCount - 1):
chart.ChartData[j + 1, 0].Text = sheet.AllocatedRange.get_Item(j + 2, 1).Text
# 遍歷數(shù)據(jù)行
for k in range(sheet.AllocatedRange.RowCount - 1):
# 遍歷數(shù)據(jù)列
for l in range(sheet.AllocatedRange.ColumnCount - 1):
# 設(shè)置圖表數(shù)據(jù)
chart.ChartData[k + 1, l + 1].NumberValue = sheet.AllocatedRange[k + 2, l + 2].NumberValue
# 設(shè)置圖表標題
chart.ChartTitle.TextProperties.Text = sheet.Name
chart.ChartTitle.TextProperties.IsCentered = True
chart.ChartTitle.Height = 30
chart.HasTitle = True
# 設(shè)置系列標簽和類別標簽
chart.Series.SeriesLabel = chart.ChartData["B1", "C1"]
chart.Categories.CategoryLabels = chart.ChartData["A2", "A" + str(sheet.AllocatedRange.RowCount)]
# 設(shè)置系列值
chart.Series.get_Item(0).Values = chart.ChartData["B2", "B" + str(sheet.AllocatedRange.RowCount)]
chart.Series.get_Item(1).Values = chart.ChartData["C2", "C" + str(sheet.AllocatedRange.RowCount)]
# 設(shè)置數(shù)據(jù)軸的數(shù)字格式
chart.PrimaryValueAxis.NumberFormat = sheet.AllocatedRange[2, 2].NumberFormat
# 設(shè)置圖表樣式
chart.ChartStyle = ChartStyle.Style5
# 設(shè)置重疊和間距寬度
chart.OverLap = 50
chart.GapWidth = 200
# 保存演示文稿
presentation.SaveToFile("output/PresentationChartFromExcelData.pptx", FileFormat.Pptx2019)
presentation.Dispose()
workbook.Dispose()
結(jié)果演示文稿

將Excel圖表以圖片形式插入到幻燈片
如果想要將Excel中已有的圖表插入到PowerPoint演示文稿,并在最大限度上保持原有格式和外觀,可以通過將Excel圖表以圖片形式插入幻燈片來實現(xiàn)。
操作示例:
- 導入所需模塊。
- 創(chuàng)建
Presentation實例,設(shè)置幻燈片大小。 - 創(chuàng)建
Workbook實例,使用Workbook.LoadFromFile()載入Excel文件。 - 使用
Workbook.Worksheets.get_Item()方法獲取第一個工作表。 - 使用
Workbook.SaveChartAsImage(worksheet, 0).ToArray()方法將工作表中的第一個圖表保存為數(shù)組,并轉(zhuǎn)換為圖片流。 - 使用
Presentation.Images.AppendStream()方法將圖片流作為圖片數(shù)據(jù)嵌入到演示文稿中。 - 使用
ISlide.Shapes.AppendEmbedImageByImageData()方法將圖片插入到幻燈片中。 - 使用
Presentation.SaveToFile()方法保存演示文稿。 - 釋放資源。
代碼示例
from spire.presentation import Presentation, FileFormat, SlideSizeType, RectangleF, ShapeType, Stream
from spire.xls import Workbook
# 創(chuàng)建Presentation實例
presentation = Presentation()
# 設(shè)置幻燈片尺寸
presentation.SlideSize.Type = SlideSizeType.Screen16x9
# 創(chuàng)建Workbook實例
workbook = Workbook()
# 加載Excel文件
workbook.LoadFromFile("示例.xlsx")
# 獲取第一個工作表
worksheet = workbook.Worksheets.get_Item(0)
# 將第一個工作表中的第一個圖表保存為圖像
imageStream = Stream(workbook.SaveChartAsImage(worksheet, 0).ToArray())
# 將圖像嵌入到演示文稿中
imageData = presentation.Images.AppendStream(imageStream)
# 獲取第一張幻燈片
slide = presentation.Slides.get_Item(0)
# 向幻燈片添加圖像形狀
rect = RectangleF.FromLTRB(50, 100, presentation.SlideSize.Size.Width - 50, presentation.SlideSize.Size.Height - 50)
slide.Shapes.AppendEmbedImageByImageData(ShapeType.Rectangle, imageData, rect)
# 保存演示文稿
presentation.SaveToFile("output/InsertExcelChartToPresentation.pptx", FileFormat.Pptx2019)
presentation.Dispose()
workbook.Dispose()
結(jié)果演示文稿

本文介紹了如何使用Python讀取Excel數(shù)據(jù)在PowerPoint演示文稿中創(chuàng)建圖表,以及將Excel圖表以圖片形式插入到幻燈片中。
以上就是使用Python讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表的詳細內(nèi)容,更多關(guān)于Python在PPT中創(chuàng)建圖表的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python+Tkinter實現(xiàn)Windows?Hosts文件編輯管理工具
在日常開發(fā)和網(wǎng)絡(luò)調(diào)試或科學上網(wǎng)場景中,Hosts文件修改是每個開發(fā)者都繞不開的"必修課",本文將完整解析一個基于Python?Tkinter開發(fā)的Windows?Hosts管理工具,希望對大家有一定的幫助2025-05-05
Python使用pyglet庫完整實現(xiàn)漢諾塔游戲流程詳解
這篇文章主要介紹了Python使用pyglet庫完整實現(xiàn)漢諾塔游戲流程,漢諾塔問題是一個遞歸問題,也可以使用非遞歸法來解決,這個問題不僅是一個數(shù)學和邏輯問題,也是一個很好的教學工具,可以用來教授遞歸、算法和邏輯思考等概念,需要的朋友可以參考下2007-02-02
使用SimpleITK讀取和保存NIfTI/DICOM文件實例
這篇文章主要介紹了使用SimpleITK讀取和保存NIfTI/DICOM文件實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
Scrapy將數(shù)據(jù)保存到Excel和MySQL中的方法實現(xiàn)
本文主要介紹了Scrapy將數(shù)據(jù)保存到Excel和MySQL中的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02
pymongo實現(xiàn)控制mongodb中數(shù)字字段做加法的方法
這篇文章主要介紹了pymongo實現(xiàn)控制mongodb中數(shù)字字段做加法的方法,涉及Python使用pymongo模塊操作mongodb數(shù)據(jù)庫字段的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03
python使用itchat模塊給心愛的人每天發(fā)天氣預報
這篇文章主要介紹了python使用itchat模塊給心愛的人每天發(fā)天氣預報,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11

