在Python 裏用 xlwings 操控 Excel spreadsheet

來源: slow_quick 2023-02-05 21:36:28 [] [博客] [舊帖] [給我悄悄話] 本文已被閱讀: 次 (1941 bytes)

目前在各種非計算機科學的數據應用行業,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()

 

所有跟帖: 

我最近發現一個這個古董級的VBA有一個比別的語言厲害的地方 -hot_powerz- 給 hot_powerz 發送悄悄話 hot_powerz 的博客首頁 (270 bytes) () 02/18/2023 postreply 10:50:37

openpyxl呀 -chinomango- 給 chinomango 發送悄悄話 chinomango 的博客首頁 (18880 bytes) () 03/24/2023 postreply 18:36:10

請您先登陸,再發跟帖!

發現Adblock插件

如要繼續瀏覽
請支持本站 請務必在本站關閉/移除任何Adblock

關閉Adblock後 請點擊

請參考如何關閉Adblock/Adblock plus

安裝Adblock plus用戶請點擊瀏覽器圖標
選擇“Disable on www.wenxuecity.com”

安裝Adblock用戶請點擊圖標
選擇“don't run on pages on this domain”