下面是针对“python使用xlsxwriter循环向excel中插入数据和图片的操作”做出的完整实例教程。
1. 准备工作
首先,确保你已经安装好了 xlsxwriter
库。如果没有安装,可以使用如下命令进行安装:
pip install xlsxwriter
然后,需要构建一个 Excel 文件,并创建一个工作簿,代码如下:
import xlsxwriter
# 创建一个新的Excel文件
workbook = xlsxwriter.Workbook('example.xlsx')
# 创建一个新的工作簿
worksheet = workbook.add_worksheet()
# 设置列宽和行高
worksheet.set_column('A:A', 20)
worksheet.set_row(0, 40)
2. 插入数据
假设我们要向 Excel 表格中插入以下数据:
学号 | 姓名 | 年龄 | 性别 | 分数 |
---|---|---|---|---|
001 | 张三 | 18 | 男 | 98 |
002 | 李四 | 19 | 女 | 85 |
003 | 王五 | 18 | 男 | 76 |
我们可以使用 write()
方法循环向单元格中插入数据,并设置单元格的格式,代码如下:
# 数据
data = [
['学号', '姓名', '年龄', '性别', '分数'],
['001', '张三', 18, '男', 98],
['002', '李四', 19, '女', 85],
['003', '王五', 18, '男', 76]
]
# 插入数据
for row_num, row_data in enumerate(data):
for col_num, col_data in enumerate(row_data):
# 设置单元格格式
cell_format = workbook.add_format()
cell_format.set_align('center')
cell_format.set_align('vcenter')
if row_num == 0:
cell_format.set_bold(True)
cell_format.set_bg_color('#D7E4BC')
if col_num == 0:
cell_format.set_bg_color('#D7E4BC')
# 写入数据
worksheet.write(row_num, col_num, col_data, cell_format)
在这段代码中,我们使用了 enumerate()
函数来循环迭代数据数组中每一行和每一列,使用 add_format()
函数设置单元格的格式。比如,我们使用了 set_bold(True)
设置第一行为粗体,使用 set_bg_color()
设置第一行和第一列的背景颜色。
3. 插入图片
在插入图片之前,需要先创建一个格式来调整图片大小。然后,使用 insert_image()
方法将图片插入到指定的单元格中。
假设我们有一张图片 example.png
,想要将其插入到 Excel 表格的 B2
单元格中,可以使用以下代码:
# 调整图片大小的格式
img_format = workbook.add_format()
img_format.set_border(1)
# 插入图片
worksheet.insert_image('B2', 'example.png', {'x_scale': 0.5, 'y_scale': 0.5, 'image_data': None, 'object_position': 1, 'border': 1})
在这段代码中,我们使用了 add_format()
函数创建一个格式并使用 set_border(1)
函数为其设置边框,然后使用 insert_image()
函数将指定路径的图片插入到表格的 B2
单元格中,并设置图片的缩放比例为50%。
4. 完整代码
最终的代码如下:
import xlsxwriter
# 创建一个新的Excel文件
workbook = xlsxwriter.Workbook('example.xlsx')
# 创建一个新的工作簿
worksheet = workbook.add_worksheet()
# 数据
data = [
['学号', '姓名', '年龄', '性别', '分数'],
['001', '张三', 18, '男', 98],
['002', '李四', 19, '女', 85],
['003', '王五', 18, '男', 76]
]
# 设置列宽和行高
worksheet.set_column('A:A', 20)
worksheet.set_row(0, 40)
# 插入数据
for row_num, row_data in enumerate(data):
for col_num, col_data in enumerate(row_data):
# 设置单元格格式
cell_format = workbook.add_format()
cell_format.set_align('center')
cell_format.set_align('vcenter')
if row_num == 0:
cell_format.set_bold(True)
cell_format.set_bg_color('#D7E4BC')
if col_num == 0:
cell_format.set_bg_color('#D7E4BC')
# 写入数据
worksheet.write(row_num, col_num, col_data, cell_format)
# 调整图片大小的格式
img_format = workbook.add_format()
img_format.set_border(1)
# 插入图片
worksheet.insert_image('B2', 'example.png', {'x_scale': 0.5, 'y_scale': 0.5, 'image_data': None, 'object_position': 1, 'border': 1})
# 关闭Excel文件
workbook.close()
这个示例中展示的是将数据和图片插入Excel的操作,你可以对其进行修改、扩展,比如为Excel中的单元格添加颜色,修改字体大小等操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 使用xlsxwriter循环向excel中插入数据和图片的操作 - Python技术站