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!

  1. 设置单元格格式

我们可以使用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')

这里我们分别设置了单元格A1B1C1的格式,包括字体、对齐方式、边框和背景颜色。

  1. 冻结窗格

我们可以使用工作表对象的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')

这里我们合并了A1C1三个单元格,并在该合并后的单元格中写入了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')

这里我们将之前合并的A1C1三个单元格拆分成了独立的三个单元格。

9.设置列宽和行高

我们可以使用工作表对象的column_dimensionsrow_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教程就到这里了,如有错误请指出,欢迎大家一起学习交流