Python用openpyxl讀寫Excel


openpyxl是一個用於讀寫Excel 2010 xlsx文件的python庫。
openpyxl官方文檔:https://openpyxl.readthedocs.io/en/stable/

一、安裝包

pip3 install openpyxl

二、創建Excel,寫入數據

from openpyxl import Workbook

#創建Workbook,並默認會創建一個空表,名稱為:Sheet
wb = Workbook()
#獲取默認的sheet
ws1 = wb.active
#設置Sheet名稱
ws1.title = 'Sheet1'
#寫入單個單元格
ws1['A1'] = '標題列1'
ws1['B1'] = '標題列2'
#寫入多個單元格(從有數據的行的下一行寫入)
ws1.append(['張三', 80])
ws1.append(['李四', 90])

#創建一個新sheet,可以指定名稱
ws2 = wb.create_sheet('Sheet2')

#復制Sheet1,新sheet名稱為Sheet1 Copy
ws3 = wb.copy_worksheet(wb['Sheet1'])

#打印所有表名
print(wb.sheetnames)

#保存
wb.save('1.xlsx')

結果Excel內容如下:

三、讀取Excel數據

讀取上面創建的1.xlsx數據

from openpyxl import Workbook
from openpyxl import load_workbook

wb = load_workbook('1.xlsx')
#猜測格式類型
wb.guess_types = True   
ws1 = wb.active

print('總行數', ws1.max_row)
print('總列數', ws1.max_column)

print('---獲取單個單元格的值---')
print(ws1['A1'].value)
print(ws1[1][0].value) #這里也是A1值,行索引從1、列索引從0算起

print('---獲取單列的所有值---')
for cell in ws1['A']:
    print(cell.value)

print('---獲取多列的值(通過切片)---')
#如果范圍比實際大,如實際只有AB兩列,指定A:B,則獲取結果返回None,並且C列會被后面.columns和.rows獲取到
for column in ws1['A:B']:
    for cell in column:        
        print(cell.value)

print('---獲取所有列的值---')
for column in ws1.columns: #也可用ws1.iter_cols()
    for cell in column:
        print(cell.value)

print('---獲取某行的值---')
for cell in ws1[1]:
    print(cell.value)

print('---獲取多行的值(通過切片)---')
for row in ws1[1:2]:
    for cell in row:
        print(cell.value)

print('---獲取所有行的值---')
for row in ws1.rows: #也可用ws1.iter_rows()
    for cell in row:
        print(cell.value)

 


免責聲明!

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



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