5.1 使用Python处理Excel文档

5.1.1 openpyxl简介与安装

openpyxl是一个专门操作xlsx的库,如果要操作xls文件,使用的库是:xlrd/xlwt/xlutils。

安装非常简单:

pip install openpyxl

在openpyxl中,主要用到三个概念:Workbooks,Sheets,Cells。Workbook就是一个excel工作表;Sheet是工作表中的一张表页;Cell就是一个单元格。

5.1.2 使用openpyxl读取Excel文档

这里使用一个例子Excel文档:

首先引入库:

from openpyxl import load_workbook

然后打开xlsx文件:

wb=load_workbook('test.xlsx')

可以使用wb的属性和方法读取Excel文档的内容,例如获取所有sheet的列表:

>>> print(wb.sheetnames)
['Sheet1']

获取想要操作的列表:

sheet=wb.get_sheet_by_name('Sheet1')

sheet是一个Worksheet对象,可以使用它的属性何方法,读取单元格内容,包括单元格里面的公式:

>>> sheet
<Worksheet "Sheet1">
>>> sheet['A']
(<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.A2>, <Cell 'Sheet1'.A3>, <Cell 'Sheet1'.A4>, <Cell 'Sheet1'.A5>)
>>> sheet['1']
(<Cell 'Sheet1'.A1>,)
>>> sheet['A1'].value
10
>>> sheet['A5']
<Cell 'Sheet1'.A5>
>>> sheet['A5'].value
'=SUM(A1:A4)'

5.1.3 使用openpyxl修改Excel文档

可以使用wb的函数创建sheet:

wb.create_sheet('newsheet')

然后获取这个sheet:

sheet=wb.get_sheet_by_name('newsheet')

在其中编辑单元格的内容:

>>> sheet['A1']=1
>>> sheet['A2']=2
>>> sheet['A3']=3
>>> sheet['A4']=4
>>> sheet['A5']='=AVERAGE(A1:A4)'

最后将wb保存成一个文件:

wb.save('test.xlsx')

得到的结果为: