python抓取数据或处理数据库,可以将数据保存到本地文件(xml、excel)或数据库(mysql等)中,本文学习python中操作excel文件的基本用法,后续将从网页中抓取的数据保存到本地excel文件。
参考文献1中给出了多种python操作excel文件的模块,并推荐使用openpyxl包,在百度上搜索python操作excel文件时,大部分搜索结果中也是使用的openpyxl,本文即基于openpyxl包学习excel文件的基本操作方式。
openpyxl包可以通过离线和在线方式安装。离线方式的话,请在参考文献4中下载包文件并将其复制到python目录下的Lib\site-packages文件夹中,在线安装的话,在命令行中运行下列命令即可安装。
pip install openpyxl
openpyxl提供的类和函数比较强大,本文主要学习以下基本操作:
- excel文件的新建、打开与保存;
- 读取、创建工作簿;
- 读取工作簿中每行及每个单元格值;
- 插入一行数据。
excel文件的新建、打开与保存。调用openpyxl中的load_workbook函数打开excel文件,该函数支持多个参数,一般用的时候只需传入文件路径即可,函数返回Workbook对象。如果要新建文件,则直接调用wb = Workbook()。保存excel文件的话,需要调用Workbook对象的save函数并传入保存文件路径。
读取、创建工作簿。Workbook对象的worksheets保存excel文件中的所有工作簿,其中worksheets的active属性保存当前的工作簿。创建工作簿可以调用Workbook对象的create_sheet函数。下面代码能打开excel文件并打印所有工作簿的名称,excel文件及代码执行结果见下图。
# coding=gbk
from openpyxl import load_workbook
path = r"E:\books\翻译库\常见词语翻译.xlsx"
wb = load_workbook(path)
for sheet in wb.worksheets:
print(sheet.title)
abActive=wb.active
print('active sheet:'+abActive.title)
读取工作簿中每行及每个单元格值。这个主要参照参考文献3和2,就直接上代码和执行结果。
# coding=gbk
from openpyxl import load_workbook
path = r"E:\books\翻译库\常见词语翻译.xlsx"
wb = load_workbook(path)
for sheet in wb.worksheets:
print('===============>')
print('worksheet:'+sheet.title)
for row in sheet.iter_rows():
for cell in row:
print(cell.coordinate, cell.value)
插入一行数据。主要操作步骤包括:打开excel文件->获取指定工作簿->追加一行数据->保存文件。主要代码及执行结果如下所示。
# coding=gbk
from openpyxl import load_workbook
path = r"E:\books\翻译库\常见词语翻译.xlsx"
wb = load_workbook(path)
sheet=wb['T']
sheet.append(['node','点'])
wb.save(path)
调用openpyxl可以很方便的操作excel文件,同时openpyxl还支持设置样式、插入图表等高级操作,有兴趣的可以查看参考文献2中的详细介绍。
参考文献
[1]https://www.python-excel.org/
[2]https://openpyxl.readthedocs.io/en/stable/
[3]https://blog.csdn.net/guoqingru0311/article/details/124046741
[4]https://foss.heptapod.net/openpyxl/openpyxl