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')
得到的结果为: