下面是使用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_values
和 y_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图表以及导出为图片的方法的完整实例教程,希望对你有所帮助。