使用Python读取Excel数据在PPT中创建图表

 更新时间:2024年08月19日 10:03:11   作者:Eiceblue  
使用Python从Excel读取数据并在PowerPoint幻灯片中创建图表不仅能够极大地简化图表创建过程,通过Python这一桥梁,我们可以轻松实现数据自动化处理和图表生成,本文将演示如何使用Python读取Excel数据在PPT中创建图表,需要的朋友可以参考下

引言

可视化数据已成为提高演示文稿专业度的关键因素之一。使用Python从Excel读取数据并在PowerPoint幻灯片中创建图表不仅能够极大地简化图表创建过程,还能确保数据的准确性和图表的即时性。通过Python这一桥梁,我们可以轻松实现数据自动化处理和图表生成,进而提升演示文稿的质量和效率。本文将演示如何使用Python读取Excel数据在PPT中创建图表,以及将Excel图表以图片形式插入到幻灯片中。

本文所用的方法需要用到Spire.Presentation for PythonSpire.XLS for Python,PyPI:pip install Spire.Presentation Spire.XLS

读取Excel数据在PPT中创建图表

我们可以通过读取Excel工作表数据,然后在幻灯片中创建一个图表并将读取数据设置为图表的数据,最后进行纵横坐标设置,来实现读取Excel数据在演示文稿中创建图表。
操作步骤示例:

  1. 导入所需模块。
  2. 创建Presentation实例,使用Presentation.SlideSize.Type属性设置幻灯片大小。
  3. 创建Workbook实例,并使用Workbook.LoadFromFile()载入Excel文件。
  4. 使用ISlide.Shapes.AppendChart()方法在默认幻灯片中创建一个图表,并使用IChart.ChartData.Clear(0, 0, 5, 5)方法清除图表的示例数据。
  5. 通过Worksheet.AllocatedRange[].Text读取表头和列头文本,并通过IChart.ChartData[].Text属性将其设置为图表数据的表头和列头。
  6. 遍历工作表的数据行和数据列,使用Worksheet.AllocatedRange[].NumberValue属性读取数据,并通过IChart.ChartData[].NumberValue将其设置为图表数据对应单元格的数据。
  7. 使用IChart.ChartTitle下的属性设置图表标题。
  8. 使用IChart.Series.SeriesLabelIChart.Categories.CategoryLabels设置图表系列和类别对应的单元格范围。
  9. 使用IChart.Series.get_Item().Values设置系列对应的数据单元格范围。
  10. 使用Worksheet.AllocatedRange[].NumberFormat属性读取Excel数据单元格的数字格式,并通过IChart.PrimaryValueAxis.NumberFormat将其设置为图表纵坐标的数字格式。
  11. 设置图表重叠和间隔宽度。
  12. 使用Presentation.SaveToFile()保存演示文稿。
  13. 释放资源。

代码示例

from spire.presentation import Presentation, FileFormat, SlideSizeType, RectangleF, ChartType, ChartStyle, FillFormatType
from spire.xls import Workbook

# 创建Presentation实例
presentation = Presentation()

# 设置幻灯片尺寸
presentation.SlideSize.Type = SlideSizeType.Screen16x9

# 创建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)

# 清除默认的虚拟数据
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

# 遍历数据行
for k in range(sheet.AllocatedRange.RowCount - 1):
    # 遍历数据列
    for l in range(sheet.AllocatedRange.ColumnCount - 1):
        # 设置图表数据
        chart.ChartData[k + 1, l + 1].NumberValue = sheet.AllocatedRange[k + 2, l + 2].NumberValue

# 设置图表标题
chart.ChartTitle.TextProperties.Text = sheet.Name
chart.ChartTitle.TextProperties.IsCentered = True
chart.ChartTitle.Height = 30
chart.HasTitle = True

# 设置系列标签和类别标签
chart.Series.SeriesLabel = chart.ChartData["B1", "C1"]
chart.Categories.CategoryLabels = chart.ChartData["A2", "A" + str(sheet.AllocatedRange.RowCount)]

# 设置系列值
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)]

# 设置数据轴的数字格式
chart.PrimaryValueAxis.NumberFormat = sheet.AllocatedRange[2, 2].NumberFormat

# 设置图表样式
chart.ChartStyle = ChartStyle.Style5

# 设置重叠和间距宽度
chart.OverLap = 50
chart.GapWidth = 200

# 保存演示文稿
presentation.SaveToFile("output/PresentationChartFromExcelData.pptx", FileFormat.Pptx2019)
presentation.Dispose()
workbook.Dispose()

结果演示文稿

将Excel图表以图片形式插入到幻灯片

如果想要将Excel中已有的图表插入到PowerPoint演示文稿,并在最大限度上保持原有格式和外观,可以通过将Excel图表以图片形式插入幻灯片来实现。

操作示例:

  1. 导入所需模块。
  2. 创建Presentation实例,设置幻灯片大小。
  3. 创建Workbook实例,使用Workbook.LoadFromFile()载入Excel文件。
  4. 使用Workbook.Worksheets.get_Item()方法获取第一个工作表。
  5. 使用Workbook.SaveChartAsImage(worksheet, 0).ToArray()方法将工作表中的第一个图表保存为数组,并转换为图片流。
  6. 使用Presentation.Images.AppendStream()方法将图片流作为图片数据嵌入到演示文稿中。
  7. 使用ISlide.Shapes.AppendEmbedImageByImageData()方法将图片插入到幻灯片中。
  8. 使用Presentation.SaveToFile()方法保存演示文稿。
  9. 释放资源。

代码示例

from spire.presentation import Presentation, FileFormat, SlideSizeType, RectangleF, ShapeType, Stream
from spire.xls import Workbook

# 创建Presentation实例
presentation = Presentation()

# 设置幻灯片尺寸
presentation.SlideSize.Type = SlideSizeType.Screen16x9

# 创建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()

结果演示文稿

本文介绍了如何使用Python读取Excel数据在PowerPoint演示文稿中创建图表,以及将Excel图表以图片形式插入到幻灯片中。

以上就是使用Python读取Excel数据在PPT中创建图表的详细内容,更多关于Python在PPT中创建图表的资料请关注脚本之家其它相关文章!

相关文章

  • Python对excel文档的操作方法详解

    Python对excel文档的操作方法详解

    这篇文章主要介绍了Python对excel文档的操作方法,结合实例形式分析了Python基于xlrd、xlwd库针对Excel文件的读写、sheet表创建、获取、遍历等相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • Python+Tkinter实现Windows Hosts文件编辑管理工具

    Python+Tkinter实现Windows Hosts文件编辑管理工具

    在日常开发和网络调试或科学上网场景中,Hosts文件修改是每个开发者都绕不开的"必修课",本文将完整解析一个基于Python Tkinter开发的Windows Hosts管理工具,希望对大家有一定的帮助
    2025-05-05
  • Python使用pyglet库完整实现汉诺塔游戏流程详解

    Python使用pyglet库完整实现汉诺塔游戏流程详解

    这篇文章主要介绍了Python使用pyglet库完整实现汉诺塔游戏流程,汉诺塔问题是一个递归问题,也可以使用非递归法来解决,这个问题不仅是一个数学和逻辑问题,也是一个很好的教学工具,可以用来教授递归、算法和逻辑思考等概念,需要的朋友可以参考下
    2007-02-02
  • 使用SimpleITK读取和保存NIfTI/DICOM文件实例

    使用SimpleITK读取和保存NIfTI/DICOM文件实例

    这篇文章主要介绍了使用SimpleITK读取和保存NIfTI/DICOM文件实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 新手必踩的Python语法常见错误与异常处理指南

    新手必踩的Python语法常见错误与异常处理指南

    在 编程世界中,Python 以其简洁优雅的语法成为开发者的宠儿,本文将从基础语法错误到高级异常处理为大家带来一份 Python 语法常见错误与异常处理完全指南,希望对大家有所帮助
    2025-07-07
  • Scrapy将数据保存到Excel和MySQL中的方法实现

    Scrapy将数据保存到Excel和MySQL中的方法实现

    本文主要介绍了Scrapy将数据保存到Excel和MySQL中的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • pymongo实现控制mongodb中数字字段做加法的方法

    pymongo实现控制mongodb中数字字段做加法的方法

    这篇文章主要介绍了pymongo实现控制mongodb中数字字段做加法的方法,涉及Python使用pymongo模块操作mongodb数据库字段的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • python使用itchat模块给心爱的人每天发天气预报

    python使用itchat模块给心爱的人每天发天气预报

    这篇文章主要介绍了python使用itchat模块给心爱的人每天发天气预报,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • 详解Python如何生成优雅的二维码

    详解Python如何生成优雅的二维码

    二维码作为一种信息传递的工具,在当今社会发挥了重要作用。从手机用户登录到手机支付,生活的各个角落都能看到二维码的存在。下面我们就来看看Python如何生成一个优雅的二维码吧
    2022-09-09
  • 一文深入了解Python中的继承知识点

    一文深入了解Python中的继承知识点

    Python 是面向对象的编程语言,因此支持面向对象的三大特性之一:继承。本文就带大家了解了解Python中继承的相关知识点,感兴趣的可以了解一下
    2022-11-11

最新评论