Openpyxl是一个Python模块,用于读取和写入Excel电子表格文件,它能够帮助我们轻松地在Python中处理Excel电子表格,包括读取和写入数据、操作单元格、复制和粘贴数据等等。本文将介绍如何在sheet中读取、写入数据,并提供一些实用的代码示例。一、安装Openpyxl
在使用Openpyxl之前,我们需要先安装它。可以使用pip命令来安装Openpyxl,打开命令行窗口,输入以下命令:
```
pip install openpyxl
```
二、读取数据
读取Excel文件的第一步是打开文件。可以使用load_workbook()函数来打开一个Excel文件,如下所示:
```
from openpyxl import load_workbook
wb = load_workbook(filename = 'example.xlsx')
```
这里的filename参数是要打开的Excel文件的文件名。load_workbook()函数返回一个Workbook对象,它表示整个Excel文件。我们可以通过sheetnames属性来获取所有工作表的名称,如下所示:
```
sheet_names = wb.sheetnames
```
如果我们只需要读取一个特定的工作表,可以使用get_sheet_by_name()函数来获取工作表对象,如下所示:
```
sheet = wb.get_sheet_by_name('Sheet1')
```
接下来,我们可以使用sheet对象的cell()方法来读取单元格的值,如下所示:
```
value = sheet.cell(row = 1, column = 1).value
```
这里的row和column参数指定要读取的单元格的行和列。value属性是该单元格的值。如果我们要同时读取多个单元格的值,可以使用for循环来遍历单元格,如下所示:
```
for row in sheet.iter_rows(min_row = 1, max_row = 3, min_col = 1, max_col = 3):
for cell in row:
print(cell.value)
```
这里的iter_rows()方法返回一个生成器,它生成一个由行中每个单元格组成的元组。我们可以使用for循环来遍历这个生成器,并使用cell.value属性来获取每个单元格的值。
三、写入数据
写入数据与读取数据类似,也需要先打开Excel文件并获取工作表对象。我们可以使用sheet对象的cell()方法来写入单元格的值,如下所示:
```
sheet.cell(row = 1, column = 1, value = 'Hello, world!')
```
这里的row和column参数指定要写入的单元格的行和列,value参数是要写入的值。
如果我们要同时写入多个单元格的值,可以使用for循环来遍历单元格,并使用cell.value属性来设置每个单元格的值,如下所示:
```
values = [
['Name', 'Age', 'Gender'],
['Tom', 18, 'Male'],
['Lucy', 19, 'Female'],
['Jack', 20, 'Male']
]
for row in range(len(values)):
for col in range(len(values[row])):
sheet.cell(row = row+1, column = col+1, value = values[row][col])
```
这里的values是一个二维列表,它包含了要写入的所有数据。我们可以使用for循环来遍历这个列表,并使用sheet.cell()方法来设置每个单元格的值。
四、其他操作
除了读取和写入数据之外,Openpyxl还提供了许多其他的操作,例如操作行和列、设置单元格样式、复制和粘贴数据等等。以下是一些实用的代码示例:
1、在单元格中设置公式
```
sheet.cell(row = 1, column = 3).value = '=SUM(A1:B1)'
```
这里的value属性设置为一个公式字符串,它将计算A1和B1单元格的和。
2、合并单元格
```
sheet.merge_cells('A1:B1')
```
这里的merge_cells()方法将A1和B1单元格合并成一个单元格。
3、设置单元格样式
```
from openpyxl.styles import Font, Alignment
font = Font(name='Calibri', size=14, bold=True, italic=False, underline='single')
alignment = Alignment(horizontal='center', vertical='center')
cell = sheet.cell(row = 1, column = 1)
cell.font = font
cell.alignment = alignment
```
这里的Font对象表示字体样式,Alignment对象表示对齐方式。我们可以将这些对象分别赋值给单元格的font和alignment属性,来设置单元格的样式。
五、