python的openpyxl的使用筆記


openpyxl模塊介紹

openpyxl模塊是一個讀寫Excel 2010文檔的Python庫,如果要處理更早格式的Excel文檔,需要用到額外的庫,openpyxl是一個比較綜合的工具,能夠同時讀取和修改Excel文檔。其他很多的與Excel相關的項目基本只支持讀或者寫Excel一種功能。

安裝openpyxl模塊

openpyxl是一個開源項目,這里使用如下命令安裝openpyxl模塊

pip3 install openpyxl

一.作成Excel文件

1.作成空的excel

import openpyxl if __name__ == '__main__': #作成一個新的空的Excel wb = openpyxl.Workbook() # 保存 wb.save('example.xlsx') 

2.變更默認sheet頁的名稱

import openpyxl if __name__ == '__main__': wb = openpyxl.Workbook #當前打開的sheet頁 wb.active ws = wb.active # 更改默認名稱Sheet` ws.title = "WorkSheetTitle" # 保存 wb.save('example.xlsx') 

3.作成含多個sheet頁的Excel

import openpyxl if __name__ == '__main__': wb = openpyxl.Workbook() #當前打開的sheet頁 wb.active ws = wb.active # #更改默認名稱Sheet` ws.title = "WorkSheetTitle" # 定義第二個sheet頁 ws2 = wb.create_sheet("NewWorkSheet2") # 定義第三個sheet頁 # `0` 的設定 會將該sheet頁 置於wb最前面 ws3 = wb.create_sheet("NewWorkSheet3", 0) # 保存 wb.save('example.xlsx') 

4.sheet頁WS的tab顏色變更

import openpyxl if __name__ == '__main__': wb = openpyxl.Workbook() ws = wb.active # 更改默認名稱Sheet` ws.title = "WorkSheetTitle" # WS的tab顏色設定 ws.sheet_properties.tabColor = "1072BA" # 保存 wb.save('example.xlsx') 

二.單元格賦值

1.指定坐標


if __name__ == '__main__':
    
    wb = openpyxl.Workbook()
    ws = wb.active

    # 更改默認名稱Sheet`
    ws.title = "WorkSheetTitle"

    # 給單元格賦值
    ws["A1"] = "HOGE"
    ws["B1"] = "FUGA"

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

2.指定行列


if __name__ == '__main__':
    
    wb = openpyxl.Workbook()
    ws = wb.active

    # 更改默認名稱Sheet`
    ws.title = "WorkSheetTitle"

    # 指定行列給單元格賦值
    ws.cell(row=4, column=2, value=10)

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

3.指定范圍

import openpyxl

if __name__ == '__main__': wb = openpyxl.Workbook() ws = wb.active # 更改默認名稱Sheet` ws.title = "worksheettitle" # 指定行列給單元格賦值 v = 0 for i in range(1,10): for n in range(1,10): ws.cell(row=i, column=n, value=v) v += 1 # 保存 wb.save('example.xlsx') 

4.一次輸出行

import openpyxl # column名 column_title = ["FirstName", "LastName"] if __name__ == '__main__': """ CELL放入值 """ wb = openpyxl.Workbook() ws = wb.active # 更改默認名稱Sheet` ws.title = "worksheettitle" # column名和値順序放入單元格中 rows = [ column_title, ["Tarou", "Tanaka"], ["Tarou", "Suzuki"], ["Tarou", "Uchiayama"], ] for row in rows: ws.append(row) # 保存 wb.save('example.xlsx') 
 
一次輸出行運行結果

5.單元格內換行

import openpyxl if __name__ == '__main__': """ 單元格內換行 """ wb = openpyxl.Workbook() ws = wb.active # 更改默認名稱Sheet` ws.title = "WorkSheetTitle" # 單元格內換行 ws['A1'] = "A\nB\nC" ws['A1'].alignment = openpyxl.styles.Alignment(wrapText=True) # 保存 wb.save('example.xlsx') 
 
單元格內換行運行結果圖

三.設置單元格的style

1.style文稿

https://openpyxl.readthedocs.io/en/default/styles.html#cell-styles-and-named-styles

2.設置字體font

import openpyxl if __name__ == '__main__': """ 設置字體font """ wb = openpyxl.Workbook() ws = wb.active # 更改默認名稱Sheet` ws.title = "worksheettitle" # 設置font font = openpyxl.styles.Font( name = "宋體", size = 15, ) a1 = ws["A1"] a1.font = font a1.value = "TEST" # 保存 wb.save('example.xlsx') 

3.單元格邊框border

import openpyxl from openpyxl.styles import Border, Side if __name__ == '__main__': """ 設置單元格style """ wb = openpyxl.Workbook() ws = wb.active # 更改默認名稱Sheet` ws.title = "worksheettitle" # 設置單元格border的style border = Border( left=Side( border_style="thin", color="FF0000" ), right=Side( border_style="thin", color="FF0000" ), top=Side( border_style="thin", color="FF0000" ), bottom=Side( border_style="thin", color="FF0000" ) ) b2 = ws["B2"] b2.border = border b2.value = "TEST" # 保存 wb.save('example.xlsx') 
 
單元格邊框style 運行結果圖

4.合並單元格

import openpyxl if __name__ == '__main__': wb = openpyxl.Workbook() ws = wb.active ws.title = "worksheettitle" # 合並單元格 ws.merge_cells("A1:E1") ws["A1"] = "HOGE" # 保存 wb.save('example.xlsx') 
 
合並單元格 運行效果圖

5.單元格填充顏色

import openpyxl from openpyxl.styles import PatternFill if __name__ == '__main__': wb = openpyxl.Workbook() ws = wb.active ws.title = "worksheettitle" # 單元格填充顏色 fill = PatternFill(fill_type='solid', fgColor='FFFF0000') b2 = ws["B2"] b2.fill = fill b2.value = "TEST" # 保存 wb.save('example.xlsx') 
 
單元格填充顏色 效果圖

四.hyperlink超鏈接

import openpyxl if __name__ == '__main__': wb = openpyxl.Workbook() ws = wb.active ws.title = "worksheettitle" # 作成第二個sheet頁 名稱胃example ws2 = wb.create_sheet("example") # 設置超鏈接 到“example”sheet頁 鼠標定格在A5單元格 ws["A1"] = "Link" ws["A1"].hyperlink = "example.xlsx#example!A5" # 保存 wb.save('example.xlsx') 

五.讀Excel文檔

from openpyxl import Workbook, load_workbook wb = load_workbook('./example.xlsx') ws = wb.active for row in ws: for cell in row: print(cell) 
 
 
7人點贊
 
日記本

 

 


免責聲明!

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



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