最近上班時,會一直需要重複整理excel的資料,每次做著同樣的事情,讓上班變得更加無趣。一天腦中閃過一個點子,「何不直接寫一個程式來處理?」,有了這個想法後,開始著手查詢相關資料、做法,可能有些人也會用到,因此整理出來。
安裝
由於在處理其他工作時是使用Python,因此也延續著使用Python來做為程式編寫語言,另外安裝XLWings[1] 來建立管理Excel的功能。XLWings 具有編寫、讀取Excel檔案的功能。有些人會使用xlrd[2]與xlwt[3],但因為此二者已不支持對xlsx作控制,因此我決定使用XLWings。
常用使用摘要
創建Excel 檔案
要建立Excel檔案時,需要使用一個叫做Book的指令,並在最後將此Book依照自定義的檔案名稱、指定存檔路徑,將建立好的檔案存檔。
import xlwings as xw
wb = xw.Book()
wb.save(r'test.xlsx')
wb.close()
在 Windows 中指定檔案路徑時,爲了避免反斜線符號()被誤認成跳脫字元,因此在字串的前面加上 「r」,或是在路徑上使用兩個反斜線,如: “C:\\path\\doc\\test.xlsx”。
讀取Excel檔案
假設有一個test.xlsx檔案,其中已經有先建立好一個表格,並且已有如以下所示的資訊
使用如以下的程式既可讀取出檔案中 「Sheet1」表格中「A1」的資料
import xlwings as xw
wb = xw.Book(r'test.xlsx')
sheet = wb.sheets['Sheet1']
print(sheet['A1'].value)
增加分頁並指定位置輸入資訊寫入
同樣使用前面使用的test.xlsx作為測試對象,目標要做的是增加一個「Sheet2」表格,並且在「A1」的位置中加入”test123”的資訊。
import xlwings as xw
wb = xw.Book(r'test.xlsx')
sheet = wb.sheets.add("Sheet2")
sheet.range("A1").value = "test123"
wb.save()
wb.close()
關閉跳出Excel畫面的功能
使用以上的指令會發現,Excel檔案的話面會跳出來,如果要與建立excel時一樣取消顯示的功能,可以透過在程式中加入xw.App(visible=False) 的指令,既可關閉。
import xlwings as xw
xw.App(visible=False)
wb = xw.Book(r'test.xlsx')
sheet = wb.sheets.add("Sheet3")
sheet.range("A1").value = "test123"
wb.save()
wb.close()
結論
使用XLWings,既可透過Python 來建立、修改Excel中的資料,對於有需要重複處理Excel資料的情況,會可以節省下許多時間來處理其他工作、事情。XLWings另外還有提供修改表格中格子的狀態、文字顏色、文字型態、資料繪製圖形等功能,有興趣的朋友可以參考看看官方的資料[5]。
參考資料
[1] XLWings
[2] xlrd
[3] xlwt
[4] XLWings官方資料
コメント