在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用户请点击浏览器图标
选择“Disable on www.wenxuecity.com”

安装Adblock用户请点击图标
选择“don't run on pages on this domain”