目前在各種非計算機科學的數據應用行業,python 語言似乎成了首選。我經常遇到的問題是數據處理是用Python,最後一步各種報表要用到從前積累各類的Excel spreadsheets。
公司人員流動比較多,前麵員工留下的半吊子 Excel spreadsheets,有些有公式(formula),有些有 VBA module,難以快速消化。我摸索了一下,發現用 Python module xlwings 能比較快速的操控 Excel,在不改變原spreadsheet 結構下完成各項任務。這些半吊子的 spreadsheet 是雜七雜八不會編程的人寫的,不容易在上麵做改動,有時間的話還得重寫。
xlwings的官網:https://docs.xlwings.org/en/stable/index.html
Xlwings 最簡單的應用是打開一個 spreadsheet,在上麵做些事,然後存放這個spreadsheet:
import xlwings as xw
app = xw.App(visible=True, add_book=False)
wb = app.books.add() # open new workbook
ws = wb.sheets['Sheet1'] # worksheet
ws['A1'].value = 'Hello, world!' # do something
folder = 'C:/Users/John Doe/Documents/'
file_name = 'my_new_spreadsheet.xlsx'
wb.save(folder + file_name)
wb.close()
app.quit()
你還可以執行spreadsheet中原來寫好的VBA macro, 比如
import xlwings as xw
app = xw.App(visible=True, add_book=False)
folder = 'C:/Users/John Doe/Documents/'
file_name = 'my_vba.xlsm'
wb = app.books.open() # open new workbook
macro = wb_pvt_tmp.macro('my_module.my_macro')
macro() # run some VBA macro
wb.save(folder + file_name)
wb.close()
app.quit()