Python3 操作Excel--openpyxl


操作Excel文件建議使用openpyxl 兼容office2016

 

打開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) 

 

操作單元格

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)  #獲取最大行數

 

讀取excel文件

#讀取excel文件 sheetname可為空
def readwb(wbname,sheetname):
    wb=openpyxl.load_workbook(filename=wbname,read_only=True)
    if (sheetname==""):
        ws=wb.active
    else:
        ws=wb[sheetname]
    i=1
    fields=[]
    data=[]
    for row in ws.rows:
        list=[]
        for cell in row:
            aa=str(cell.value)
            if (aa==""):
                aa="1"
            list.append(aa)
        if(i<5):
            pass
        elif (i==5):
            fields=list
        else:
            data.append(list)
        i=i+1
    data.sort(key=lambda x:x[0])
    print (wbname +"-"+sheetname+"- 已成功讀取")
    return fields,data

 

 新建excel,並寫入數據

#新建excel
def creatwb(wbname):  
    wb=openpyxl.Workbook()
    wb.save(filename=wbname)
    print ("新建Excel:"+wbname+"成功")

# 寫入excel文件中 date 數據, 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("保存成功")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM