Python3 读取和写入excel xlsx文件 使用openpyxl,xlsxopenpyxl,python处理ex



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

评论关闭