上次课我们讲了 Excel 文档的读取。 本次课我们来讲下 Excel 文档的写入。
# 1 向单元格写入数据
# 1.1 一个单元格的写入
向工作表的一个单元格写入内容的代码如下:
import openpyxl
wb = openpyxl.Workbook()
ws = wb['Sheet']
ws['A1'].value = 'Hello World!'
wb.save('write_excel.xlsx')
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')
2
3
4
5
6
7
8
9
上面的代码向工作表第二行的前九个单元格分别写入了1,2,3,4,5,6,7,8,9。
# 2 插入、删除行和列
文档 example.xlsx 的内容如下图所示:
# 2.1 在指定位置插入一行
import openpyxl
wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active
ws.insert_rows(idx=1)
wb.save('example.xlsx')
2
3
4
5
6
7
上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来,在第一行的位置插入一行后进行保存。插入之后的文档如下图所示:
# 2.2 在指定位置插入多行
import openpyxl
wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active
ws.insert_rows(idx=3, amount=3)
wb.save('example.xlsx')
2
3
4
5
6
7
上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来,在第三行的位置插入三行后进行保存。插入之后的文档如下图所示:
# 2.3 在指定位置删除一行
import openpyxl
wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active
ws.delete_rows(idx=1)
wb.save('example.xlsx')
2
3
4
5
6
7
上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来,在第一行的位置删除一行后进行保存。删除之后的文档如下图所示:
# 2.4 在指定位置删除多行
import openpyxl
wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active
ws.delete_rows(idx=2, amount=3)
wb.save('example.xlsx')
2
3
4
5
6
7
上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来,在第二行的位置删除三行后进行保存。删除之后的文档如下图所示:
# 2.5 在指定位置插入一列
import openpyxl
wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active
ws.insert_cols(idx=1)
wb.save('example.xlsx')
2
3
4
5
6
7
上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来在第一列插入一列并进行保存。删除之后的文档如下图所示:
# 2.6 在指定位置插入多列
import openpyxl
wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active
ws.insert_cols(idx=3, amount=3)
wb.save('example.xlsx')
2
3
4
5
6
7
上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来,在第三列的位置插入三列后进行保存。插入之后的文档如下图所示:
# 2.7 在指定位置删除多列
import openpyxl
wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active
ws.delete_cols(idx=3, amount=3)
wb.save('example.xlsx')
2
3
4
5
6
7
上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来,在第三列的位置删除三列后进行保存。删除之后的文档如下图所示:
# 2.8 在指定位置删除一列
import openpyxl
wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active
ws.delete_cols(idx=1)
wb.save('example.xlsx')
2
3
4
5
6
7
上面代码中,首先读取文档 example.xlsx,然后获取活跃的工作表。接下来,在第一列的位置删除一列后进行保存。删除之后的文档如下图所示: