通過openpyxl模塊創建workbook時,無需本地事先創建好excel,它會直接創建一個新的excel文件
創建workbook時,會至少包含一個worksheet
注意:openpyxl模塊只支持.xlsx,.xlsm,.xltx,.xltm格式
使用示例:
導入openpyxl模塊的Workbook類
from openpyxl import Workbook
創建workbook,並獲取workbook中第一個sheet
wb = Workbook() #創建一個workbook ws = wb.active #獲取當前workbook的第一個worksheet,默認的索引值是0,它是可以改變的
創建worksheet
ws1 = wb.create_sheet() #在當前workbook的結尾處追加一個新的worksheet,名稱是自動賦值的,如Sheet1,Sheet2,.... ws2 = wb.create_sheet(0) #在當前workbook的指定索引處追加一個新的worksheet,名稱是自動賦值的,如Sheet1,Sheet2,.... ws1.title = "New Title1" #指定sheet名稱為New Title1 ws2.title = "New Title2" #指定sheet名稱為New Title2 ws3 = wb.create_sheet("MyNewSheet1") #在當前workbook的結尾追加一個新的worksheet,並指定sheet名稱為MyNewSheet1 ws4 = wb.create_sheet("MyNewSheet2", 0) #在當前workbook的指定索引處追加一個新的worksheet,並指定sheet名稱為MyNewSheet2
通過worksheet名稱獲取worksheet
ws5 = wb["MyNewSheet2"] print(wb.sheetnames) #以列表形式輸出該workbook中所有的worksheet for sheet in wb: print(sheet.title) #循環輸出workbook的各個worksheet的名稱
設定worksheet的顏色
ws.sheet_properties.tabColor = "1072BA" #設定worksheet的顏色,設定值為RRGGBB顏色代碼
拷貝當前worksheet
source = wb.active
target = wb.copy_worksheet(source)
注意:
1) 不支持將一個worksheet從一個workbook拷貝至另一個workbook
2) 如果當前workbook是read-only或者write-only模式,則也不支持worksheet的拷貝
3) 拷貝worksheet時,不是所有的worksheet的內容都會被拷貝,具體可拷貝內容如下:
a) 單元格,包括里面的值,樣式,鏈接和注釋式可以被拷貝
b) 某些worksheet的屬性,如維度,格式及屬性可以被拷貝
c) 以上其他的workbook和worksheet屬性不會被拷貝,如圖片,圖形等
將當前設置保存到本地文件
wb.save("sample.xlsx") #以上處理都是在內存中的,save表示將最終的結果導出到本地文件上