Python 语言 用 Pillow+Openpyxl 将 Excel 数据转成图片 适合 PPT 汇报 + 自定义配色

Python阿木 发布于 1 天前 3 次阅读


Python 使用 Pillow 和 Openpyxl 将 Excel 数据转换为图片

在制作PPT汇报时,经常需要将数据可视化,以便更直观地展示信息。Excel作为数据处理和可视化的常用工具,其数据可以很容易地转换为图片格式,以便在PPT中使用。本文将介绍如何使用Python的Pillow库和Openpyxl库将Excel数据转换为图片,并自定义配色方案。

准备工作

在开始之前,请确保您已经安装了以下Python库:

- Pillow:用于图像处理
- Openpyxl:用于读取和写入Excel文件

您可以使用以下命令安装这些库:

bash
pip install Pillow
pip install openpyxl

1. 读取Excel数据

我们需要使用Openpyxl库读取Excel文件中的数据。以下是一个示例代码,展示如何读取Excel文件中的数据:

python
from openpyxl import load_workbook

加载Excel文件
wb = load_workbook('data.xlsx')
sheet = wb.active

读取数据
data = []
for row in sheet.iter_rows(min_row=2, values_only=True):
data.append(row)

打印数据
for row in data:
print(row)

这段代码将读取名为`data.xlsx`的Excel文件,并打印出除了标题行之外的所有数据。

2. 创建图片

接下来,我们将使用Pillow库创建图片,并将Excel数据绘制到图片上。以下是一个示例代码,展示如何创建一个简单的图片并绘制数据:

python
from PIL import Image, ImageDraw

创建一个白色背景的图片
width, height = 800, 600
image = Image.new('RGB', (width, height), 'white')
draw = ImageDraw.Draw(image)

绘制数据
for i, row in enumerate(data):
x = 50
y = 50 + i 20
draw.text((x, y), str(row), font=('Arial', 12), fill='black')

保存图片
image.save('data.png')

这段代码将创建一个800x600像素的图片,并将Excel数据以文本形式绘制到图片上。图片将被保存为`data.png`。

3. 自定义配色方案

为了使图片更加美观,我们可以自定义配色方案。以下是一个示例代码,展示如何为图片添加自定义的背景颜色和字体颜色:

python
from PIL import Image, ImageDraw, ImageFont

创建一个自定义颜色的图片
background_color = (255, 255, 200) 浅黄色背景
font_color = (0, 0, 0) 黑色字体
image = Image.new('RGB', (width, height), background_color)
draw = ImageDraw.Draw(image)

加载自定义字体
font_path = 'arial.ttf' 自定义字体路径
font = ImageFont.truetype(font_path, 12)

绘制数据
for i, row in enumerate(data):
x = 50
y = 50 + i 20
draw.text((x, y), str(row), font=font, fill=font_color)

保存图片
image.save('data_custom_color.png')

这段代码将创建一个具有自定义背景颜色和字体颜色的图片,并将Excel数据绘制到图片上。图片将被保存为`data_custom_color.png`。

4. 高级功能

除了基本的文本绘制,Pillow库还提供了许多高级功能,例如绘制图形、添加边框、阴影等。以下是一个示例代码,展示如何使用Pillow库的高级功能来增强图片:

python
from PIL import Image, ImageDraw, ImageFont

创建一个自定义颜色的图片
background_color = (255, 255, 200) 浅黄色背景
font_color = (0, 0, 0) 黑色字体
image = Image.new('RGB', (width, height), background_color)
draw = ImageDraw.Draw(image)

加载自定义字体
font_path = 'arial.ttf' 自定义字体路径
font = ImageFont.truetype(font_path, 12)

绘制数据
for i, row in enumerate(data):
x = 50
y = 50 + i 20
draw.text((x, y), str(row), font=font, fill=font_color)

添加边框
draw.rectangle([x-2, y-2, x+2, y+2], outline='black')

添加阴影
draw.rectangle([x+2, y+2, x+4, y+4], fill='black')

保存图片
image.save('data_advanced.png')

这段代码将在每个文本旁边添加一个边框和阴影,使图片看起来更加专业。

总结

本文介绍了如何使用Python的Pillow和Openpyxl库将Excel数据转换为图片,并展示了如何自定义配色方案和添加高级功能。通过这些技术,您可以轻松地将Excel数据可视化,并在PPT汇报中使用这些图片。希望本文对您有所帮助!