1.创建Excel文档
首先我们需要安装openpyxl
库:
pip install openpyxl
然后使用下面代码创建一个新的Excel文档:
import openpyxl
workbook = openpyxl.Workbook()
workbook.save('test.xlsx')
这样我们就创建了一个名为test.xlsx
的Excel文档。
2.打开Excel文档
下面是打开一个已有的Excel文档的代码:
import openpyxl
workbook = openpyxl.load_workbook('test.xlsx')
这里我们打开了之前创建的test.xlsx
文档。
3.获取工作表
Excel文档中可以包含多个工作表,我们首先需要获取到指定的工作表,才能对其进行操作。
获取工作表的代码如下:
import openpyxl
workbook = openpyxl.load_workbook('test.xlsx')
worksheet = workbook['Sheet1'] # 获取名为“Sheet1”的工作表对象
这里我们获取了名为Sheet1
的工作表对象。
4.读取单元格数据
我们可以通过工作表对象的cell()
方法获取单元格对象,然后获取该单元格对象的value
属性,即可读取该单元格的值。这里我们读取A1
单元格的数据:
import openpyxl
workbook = openpyxl.load_workbook('test.xlsx')
worksheet = workbook['Sheet1']
cell = worksheet.cell(row=1, column=1)
print(cell.value)
5.写入单元格数据
我们同样可以通过工作表对象的cell()
方法获取单元格对象,并给该单元格对象的value
属性赋值,即可写入数据。
import openpyxl
workbook = openpyxl.load_workbook('test.xlsx')
worksheet = workbook['Sheet1']
cell = worksheet.cell(row=1, column=1)
cell.value = 'Hello, World!'
workbook.save('test.xlsx')
这里我们将A1
单元格的值改为Hello, World!
。
- 设置单元格格式
我们可以使用openpyxl.styles
模块来设置单元格的格式,比如字体、颜色、对齐方式等。
import openpyxl
from openpyxl.styles import Font, Alignment, Border, Side, PatternFill
workbook = openpyxl.Workbook()
worksheet = workbook.active
# 设置单元格A1的字体为Times New Roman,大小为18,加粗
cell = worksheet.cell(row=1, column=1)
cell.value = 'Hello, World!'
cell.font = Font(name='Times New Roman', size=18, bold=True)
# 设置单元格B1的文本居中对齐
cell = worksheet.cell(row=1, column=2)
cell.value = 'Hello, World!'
cell.alignment = Alignment(horizontal='center', vertical='center')
# 设置单元格C1的边框为双线,背景颜色为黄色
cell = worksheet.cell(row=1, column=3)
cell.value = 'Hello, World!'
cell.border = Border(left=Side(style='double'), right=Side(style='double'),
top=Side(style='double'), bottom=Side(style='double'))
cell.fill = PatternFill(patternType='solid', fgColor='FFFF00')
workbook.save('test.xlsx')
这里我们分别设置了单元格A1
、B1
、C1
的格式,包括字体、对齐方式、边框和背景颜色。
- 冻结窗格
我们可以使用工作表对象的freeze_panes
属性来冻结窗格。
import openpyxl
workbook = openpyxl.Workbook()
worksheet = workbook.active
# 冻结第一行和第一列
worksheet.freeze_panes = 'B2'
workbook.save('test.xlsx')
这里我们冻结了第一行和第一列,即窗口滚动时第一行和第一列会一直显示在最上面和最左边。
11.合并单元格
我们可以使用工作表对象的merge_cells()
方法来合并单元格。
import openpyxl
workbook = openpyxl.Workbook()
worksheet = workbook.active
# 合并A1到C1的单元格
worksheet.merge_cells('A1:C1')
cell = worksheet.cell(row=1, column=1)
cell.value = 'Hello, World!'
workbook.save('test.xlsx')
这里我们合并了A1
到C1
三个单元格,并在该合并后的单元格中写入了Hello, World!
。
8.拆分单元格
我们可以使用工作表对象的unmerge_cells()
方法来拆分单元格。
import openpyxl
workbook = openpyxl.load_workbook('test.xlsx')
worksheet = workbook.active
# 拆分A1到C1的单元格
worksheet.unmerge_cells('A1:C1')
workbook.save('test.xlsx')
这里我们将之前合并的A1
到C1
三个单元格拆分成了独立的三个单元格。
9.设置列宽和行高
我们可以使用工作表对象的column_dimensions
和row_dimensions
属性来设置列宽和行高。
import openpyxl
workbook = openpyxl.Workbook()
worksheet = workbook.active
# 设置第一列的宽度为20
worksheet.column_dimensions['A'].width = 20
# 设置第一行的高度为30
worksheet.row_dimensions[1].height = 30
workbook.save('test.xlsx')
这里我们设置了第一列的宽度为20,第一行的高度为30。
10.插入图片
我们可以使用openpyxl.drawing
模块来插入图片。
import openpyxl
from openpyxl.drawing.image import Image
workbook = openpyxl.Workbook()
worksheet = workbook.active
img = Image('test.png')
# 将图片插入到A1单元格
worksheet.add_image(img, 'A1')
workbook.save('test.xlsx')
这里我们将一个名为test.png
的图片插入到了A1
单元格中。
好了本期openpyxl教程就到这里了,如有错误请指出,欢迎大家一起学习交流