介绍
介绍
福哥今天要带着大家学习使用Python读取Excel文档的方法,Python读取Excel文档推荐使用openpyxl库,这个库接口友好、效率高,可以让我们简简单单地将Excel里面的数据读取出来使用。
安装
安装openpyxl库。
使用的是openpyxl库,直接通过pip安装即可。
pip install openpyxl

读文档
这里有一个测试用的excel文档,我们等下会用openpyxl读取它的数据。

默认格式
我们使用最简单的方式读取这个报表的内容,遍历过程没有进行特别的加工,很直观~~
福哥整理了步骤:load_workbook > worksheets > worksheet > rows > row > cell > cell.coordinate, cell.value,大家可以记住这个层级关系!
import openpyxl
workbook = openpyxl.load_workbook("openpyxl.xlsx")
allSheetDatas = None
if workbook is not None and workbook.worksheets is not None:
# cycle sheets
allSheetDatas = []
for d in range(0, len(workbook.worksheets)):
mySheet = workbook.worksheets[d]
# cycle rows
sheetDatas = []
for row in mySheet.iter_rows():
# cycle cell
sheetRow = {}
for cell in row:
sheetRow[cell.coordinate] = cell.value
# save row
sheetDatas.append(sheetRow)
# save sheet
allSheetDatas.append(sheetDatas)
# dump
if allSheetDatas is not None:
for d in range(0, len(allSheetDatas)):
for e in range(0, len(allSheetDatas[d])):
print(d, e, allSheetDatas[d][e])
数据表格式
大家可以看到这个导出的格式和Excel上面看到的是颠倒的,列头在最左边,数据在右边,很不方便查看。
福哥整理了一个排列的代码,可以将这个颠倒的格式“正”过来!
import openpyxl
import re
workbook = openpyxl.load_workbook("openpyxl.xlsx")
allSheetDatas = None
if workbook is not None and workbook.worksheets is not None:
# cycle sheets
allSheetDatas = []
for d in range(0, len(workbook.worksheets)):
mySheet = workbook.worksheets[d]
# cycle rows
dataTableField = []
dataFieldRow = None
sheetDatas = []
for row in mySheet.iter_rows():
# cycle cell
sheetRow = {}
if dataFieldRow is None:
dataFieldRow = {}
for cell in row:
colChar = re.sub(r"\d+", "", cell.coordinate)
dataFieldRow[colChar] = cell.value
continue
else:
dataRow = {}
for cell in row:
colChar = re.sub(r"\d+", "", cell.coordinate)
sheetRow[dataFieldRow[colChar]] = cell.value
# save row
sheetDatas.append(sheetRow)
# save sheet
allSheetDatas.append(sheetDatas)
# dump
if allSheetDatas is not None:
for d in range(0, len(allSheetDatas)):
for e in range(0, len(allSheetDatas[d])):
print(d, e, allSheetDatas[d][e])
总结
今天福哥带着童鞋们学习了Python的openpyxl库的使用方法,通过openpyxl库可以快速地将Excel当中的数据读取出来,形成一个二维的dict结构,便于我们进行加工处理。
下一课,我们会学习使用openpyxl库创建、编写Excel文档的技巧,敬请期待~~