Python3 读取和写入excel xlsx文件 使用openpyxl
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3 读取和写入excel xlsx文件 使用openpyxl相关的知识,希望对你有一定的参考价值。
python处理excel已经有大量包,主流代表有:
?xlwings:简单强大,可替代VBA
?openpyxl:简单易用,功能广泛
?pandas:使用需要结合其他库,数据处理是pandas立身之本
?win32com:不仅仅是excel,可以处理office;不过它相当于是 windows COM 的封装,新手使用起来略有些痛苦。
?Xlsxwriter:丰富多样的特性,缺点是不能打开/修改已有文件,意味着使用 xlsxwriter 需要从零开始。
?DataNitro:作为插件内嵌到excel中,可替代VBA,在excel中优雅的使用python
?xlutils:结合xlrd/xlwt,老牌python包,需要注意的是你必须同时安装这三个库
1.openpyxl使用
openpyxl是Python可以用于处理xlsx的库!
2.openpyxl安装
pip install openpyxl
3.使用技巧
(1)打开excel文件,获取工作表
import openpyxl
wb=openpyxl.load_workbook(‘ttt.xlsx‘) #打开excel文件
print(wb.get_sheet_names()) #获取工作簿所有工作表名
sheet=wb.get_sheet_by_name(‘Sheet1‘) #获取工作表
print(sheet.title)
sheet02=wb.get_active_sheet() #获取活动的工作表
print(sheet02.title)
(2)操作单元格
print(sheet[‘A1‘].value) #获取单元格A1值
print(sheet[‘A1‘].column) #获取单元格列值
print(sheet[‘A1‘].row) #获取单元格行号
print(sheet.cell(row=1,column=1).value) #获取单元格A1值,column与row依然可用
for i in range(1,4,1):
print(sheet.cell(row=i,column=1).value) #更加方便实用
print(sheet.max_column) #获取最大列数
print(sheet.max_row) #获取最大行数
(3)读取excel文件
#wbname==即文件名称,sheetname==工作表名称,可以为空,若为空默认第一个工作表
def readwb(wbname,sheetname):
wb=openpyxl.load_workbook(filename=wbname,read_only=True)
if (sheetname==""):
ws=wb.active
else:
ws=wb[sheetname]
data=[]
for row in ws.rows:
list=[]
for cell in row:
aa=str(cell.value)
if (aa==""):
aa="1"
list.append(aa)
data.append(list)
print (wbname +"-"+sheetname+"- 已成功读取")
return data
(4)新建excel,并写入数据
#新建excel
def creatwb(wbname):
wb=openpyxl.Workbook()
wb.save(filename=wbname)
print ("新建Excel:"+wbname+"成功")
# 写入excel文件中 date 数据,date是list数据类型, fields 表头
def savetoexcel(data,fields,sheetname,wbname):
print("写入excel:")
wb=openpyxl.load_workbook(filename=wbname)
sheet=wb.active
sheet.title=sheetname
field=1
for field in range(1,len(fields)+1): # 写入表头
_=sheet.cell(row=1,column=field,value=str(fields[field-1]))
row1=1
col1=0
for row1 in range(2,len(data)+2): # 写入数据
for col1 in range(1,len(data[row1-2])+1):
_=sheet.cell(row=row1,column=col1,value=str(data[row1-2][col1-1]))
wb.save(filename=wbname)
print("保存成功")
以上是关于Python3 读取和写入excel xlsx文件 使用openpyxl的主要内容,如果未能解决你的问题,请参考以下文章
Python3 关于excel 文件格式xls之读取写入和追加
Apache POI 4.0.1版本读取普通Excel文件(兼容 xls 和 xlsx)