码迷,mamicode.com
首页 > 编程语言 > 详细

Python3 读取和写入excel xlsx文件 使用openpyxl

时间:2017-09-22 19:10:17      阅读:3596      评论:0      收藏:0      [点我收藏+]

标签:第一个   大量   date   window   log   类型   易用   mes   优雅   


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

标签:第一个   大量   date   window   log   类型   易用   mes   优雅   

原文地址:http://www.cnblogs.com/tester-l/p/7576310.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!