上次课我们讲了 Excel 文档的读取。 image.png 本次课我们来讲下 Excel 文档的写入。

# 1 向单元格写入数据

# 1.1 一个单元格的写入

向工作表的一个单元格写入内容的代码如下:

import openpyxl

wb = openpyxl.Workbook()
ws = wb['Sheet']
ws['A1'].value = 'Hello World!'
wb.save('write_excel.xlsx')
1
2
3
4
5
6

上面代码中,首先导入第三方库 openpyxl。其次,获取工作簿中的工作表。最后,向单元格 A1 写入 Hello World! 并保存文档为 write_excel.xlsx。这样,我们便向文档 write_excel.xlsx 的 Sheet 工作表的 A1 单元格写入了 Hello World!

# 1.2 多个单元格的写入

上面一次写入一个单元格,我们可以使用循环一次写入多个单元格。代码如下:

import openpyxl

wb = openpyxl.load_workbook("write_excel.xlsx")
ws = wb['Sheet']

for i in range(1, 10):
    ws.cell(row=2, column=i).value = i
    
wb.save('write_excel.xlsx')
1
2
3
4
5
6
7
8
9

上面的代码向工作表第二行的前九个单元格分别写入了1,2,3,4,5,6,7,8,9。

# 2 插入、删除行和列

文档 example.xlsx 的内容如下图所示: image.png

# 2.1 在指定位置插入一行

import openpyxl

wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active

ws.insert_rows(idx=1)
wb.save('example.xlsx')
1
2
3
4
5
6
7

上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来,在第一行的位置插入一行后进行保存。插入之后的文档如下图所示: image.png

# 2.2 在指定位置插入多行

import openpyxl

wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active

ws.insert_rows(idx=3, amount=3)
wb.save('example.xlsx')
1
2
3
4
5
6
7

上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来,在第三行的位置插入三行后进行保存。插入之后的文档如下图所示: image.png

# 2.3 在指定位置删除一行

import openpyxl

wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active

ws.delete_rows(idx=1)
wb.save('example.xlsx')
1
2
3
4
5
6
7

上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来,在第一行的位置删除一行后进行保存。删除之后的文档如下图所示: image.png

# 2.4 在指定位置删除多行

import openpyxl

wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active

ws.delete_rows(idx=2, amount=3)
wb.save('example.xlsx')
1
2
3
4
5
6
7

上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来,在第二行的位置删除三行后进行保存。删除之后的文档如下图所示: image.png

# 2.5 在指定位置插入一列

import openpyxl

wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active

ws.insert_cols(idx=1)
wb.save('example.xlsx')
1
2
3
4
5
6
7

上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来在第一列插入一列并进行保存。删除之后的文档如下图所示: image.png

# 2.6 在指定位置插入多列

import openpyxl

wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active

ws.insert_cols(idx=3, amount=3)
wb.save('example.xlsx')
1
2
3
4
5
6
7

上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来,在第三列的位置插入三列后进行保存。插入之后的文档如下图所示: image.png

# 2.7 在指定位置删除多列

import openpyxl

wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active

ws.delete_cols(idx=3, amount=3)
wb.save('example.xlsx')
1
2
3
4
5
6
7

上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来,在第三列的位置删除三列后进行保存。删除之后的文档如下图所示: image.png

# 2.8 在指定位置删除一列

import openpyxl

wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active

ws.delete_cols(idx=1)
wb.save('example.xlsx')
1
2
3
4
5
6
7

上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来,在第一列的位置删除一列后进行保存。删除之后的文档如下图所示: image.png

# 3 小结

image.png

更新于: 12/30/2021, 2:46:39 AM