您的位置:

openpyxl模块介绍

一、简介

openpyxl是一个用于读写Excel xlsx/xlsm/xltx/xltm文件的Python库,其中,xlsx/xlsm是Excel 2007或更高版本的文件格式,xltx/xltm是Excel的模板。

这个库使用起来非常简单易懂,提供了类似于操作Python字典的API来操作Excel文件。

二、安装

在终端中使用pip install openpyxl命令即可快速安装。

pip install openpyxl

三、读取Excel文件

读取Excel文件是openpyxl包中最基础的操作,使用openpyxl.load_workbook() 方法打开Excel文件,然后通过取得工作表的实例sheet,使用for循环读取每一行的数据。

import openpyxl

workbook = openpyxl.load_workbook('example.xlsx')
sheet = workbook.active

for row in sheet.iter_rows():
    for cell in row:
        print(cell.value, end=', ')
    print('\n')

四、写入Excel数据

除了读取Excel中的数据,将数据写入Excel也是openpyxl的一项重要功能。首先使用openpyxl.load_workbook() 方法打开Excel文件,取得要写入数据的工作表实例sheet,然后使用sheet.cell() 方法将数据写入对应的单元格。

import openpyxl

workbook = openpyxl.load_workbook('example.xlsx')
sheet = workbook.active

sheet['A1'] = 'Name'
sheet['B1'] = 'Age'
sheet['C1'] = 'Country'

data = [
    {'name': 'Tom', 'age': 23, 'country': 'China'},
    {'name': 'Jerry', 'age': 34, 'country': 'USA'},
    {'name': 'Kate', 'age': 27, 'country': 'Japan'},
]

for index, row in enumerate(data, start=2):
    sheet.cell(row=index, column=1).value = row['name']
    sheet.cell(row=index, column=2).value = row['age']
    sheet.cell(row=index, column=3).value = row['country']

workbook.save('example.xlsx')

五、格式化Excel文件

openpyxl不仅仅可以读取和写入单元格的值,还可以格式化Excel文件的字体、颜色、边框等。

from openpyxl.styles import Font, Alignment
from openpyxl.worksheet.dimensions import ColumnDimension

workbook = openpyxl.Workbook()
sheet = workbook.active

column_dimensions = sheet.column_dimensions['A']
column_dimensions.width = 20

sheet['A1'] = '姓名'
sheet['A1'].font = Font(size=14, bold=True, color='0000FF')
sheet['A1'].alignment = Alignment(horizontal='center', vertical='center')

workbook.save('format.xlsx')

六、操作Excel表格

openpyxl还支持多种针对Excel表格的操作,包括添加/删除列、行,调整行高列宽等操作。

workbook = openpyxl.Workbook()
sheet = workbook.active

sheet.column_dimensions.insert(1, ColumnDimension(sheet, width=20))
sheet.row_dimensions[1].height = 20

for i in range(1, 11):
    sheet.cell(row=i, column=1).value = f'数据{i}'
    sheet.cell(row=i, column=2).value = f'{i * 10}'

workbook.save('table.xlsx')

七、结语

本篇文章介绍了openpyxl模块的基础用法,以上的操作只是openpyxl的冰山一角,openpyxl提供了众多操作Excel文件的方法,读者可以去官网了解更多API的使用方法。