使用Python导出Excel图表以及导出为图片的方法

  • Post category:Python

下面是使用Python导出Excel图表以及导出为图片的方法的完整实例教程。

1. 准备工作

首先,我们需要安装 openpyxl 库来读写Excel,以及 matplotlib 库来绘制图表和导出图片。

在终端中输入以下命令安装这两个库:

pip install openpyxl
pip install matplotlib

2. 读取Excel数据

使用 openpyxl 库中的 load_workbook 方法来读取Excel文件:

import openpyxl

wb = openpyxl.load_workbook('example.xlsx')
sheet = wb['Sheet1']

其中 example.xlsx 为我们要读取的Excel文件名,Sheet1 为其中的一个工作表名。

3. 绘制图表

使用 matplotlib 库来绘制图表,我们可以绘制多种类型的图表,例如:线图、柱状图等。

绘制线图示例代码:

import matplotlib.pyplot as plt

x_values = [1, 2, 3, 4, 5]
y_values = [10, 8, 6, 4, 2]
plt.plot(x_values, y_values)
plt.show()

其中 x_valuesy_values 分别为 x 和 y 轴的值,plt.plot 为绘制线图的方法,plt.show() 为显示图表的方法。

绘制柱状图示例代码:

import matplotlib.pyplot as plt

x_values = [1, 2, 3, 4, 5]
y_values = [10, 8, 6, 4, 2]
plt.bar(x_values, y_values)
plt.show()

其中 plt.bar 为绘制柱状图的方法。

4. 将图表插入到Excel中

我们可以使用 openpyxl 库中的 add_chart 方法将绘制好的图表插入到 Excel 中指定的位置。

示例代码插入到 Excel 中指定的位置:

from openpyxl.chart import (
    LineChart,
    BarChart,
    Reference,
    Series,
)

# 创建一个图表实例
chart = LineChart()

# 添加数据
values = Reference(sheet, min_col=2, min_row=1, max_row=5)
series = Series(values, title='Series 1')
chart.append(series)

# 将图表插入到Excel中指定的位置
sheet.add_chart(chart, 'C1')

其中 LineChart() 为创建一个线图实例,Reference() 为在 Excel 中引用数据,Series() 为将数据添加到图表中,add_chart() 为将图表插入到Excel中指定的位置。

5. 导出Excel为图片

导出整张Excel表格为图片示例代码:

from openpyxl.drawing.image import Image

img = Image('example.xlsx')
img.save('example.png')

其中 Image() 为读取 Excel 文件为图片,img.save() 为保存图片。

6. 样例

以下是一个完整的Python代码,通过读取Excel中数据绘制出了一张柱状图,并将图表插入到Excel文件中,并且将整张Excel表格导出为图片。

import openpyxl
from openpyxl.chart import (
    BarChart,
    Reference,
)
import matplotlib.pyplot as plt
from openpyxl.drawing.image import Image

# 读取 Excel 数据
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb["Sheet1"]

# 绘制图表
x_values = [1, 2, 3, 4, 5]
y_values = [10, 8, 6, 4, 2]
plt.bar(x_values, y_values)

# 将图表插入到Excel中指定的位置
chart = BarChart()
values = Reference(sheet, min_col=2, min_row=1, max_row=5)
series = Series(values, title='Series 1')
chart.append(series)
sheet.add_chart(chart, 'D1')

# 保存Excel文件
wb.save('example_chart.xlsx')

# 保存Excel为图片
img = Image('example_chart.xlsx')
img.save('example_chart.png')

# 显示图表
plt.show()

这段代码读取名为 example.xlsx 的Excel文件中的数据,并绘制了一张柱状图,将图表插入到了Excel文件中,另外将整张Excel表格导出为图片,并将其保存为 example_chart.png 文件。

以上就是使用Python导出Excel图表以及导出为图片的方法的完整实例教程,希望对你有所帮助。