python - 使用 pandas 读取和更新 XLSM 文件中的工作表,同时保留 VBA 代码

标签 python excel vba pandas

我需要读取 xlsm 文件并更新文件中的一些工作表。我想使用 pandas 来实现此目的。

我尝试了以下帖子中提供的答案。当我重新添加 VBA 项目时,我看不到 VBA 宏。
https://stackoverflow.com/posts/28170939/revisions

这是我尝试过的步骤,

从原始.xlsm文件中提取VBA_project.bin,然后

writer = pd.ExcelWriter('original.xlsx', engine='xlsxwriter')
workbook = writer.book
workbook.filename = 'test.xlsm'
workbook.add_vba_project('vbaProject.bin')
writer.save()

这样,我看不到附加到“test.xlsm”的 VBA 宏。即使我将其写入“original.xlsm”文件,结果也是一样的。

如何保留 VBA 宏或将它们添加回原始 xlsm 文件?

另外,有没有办法可以使用 pd.ExcelWriter 打开“xlsm”文件本身而不是“xlsx”文件?

最佳答案

你可以用 pandas 轻松做到这一点

import pandas as pd
import xlrd

# YOU MUST PUT sheet_name=None TO READ ALL CSV FILES IN YOUR XLSM FILE
df = pd.read_excel('YourFile.xlsm', sheet_name=None)

# prints all sheets
print(df)

关于python - 使用 pandas 读取和更新 XLSM 文件中的工作表,同时保留 VBA 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55134031/

相关文章:

vba - 在 VBA 中将公共(public)方法添加到用户窗体模块

vba - 查看附件是嵌入的还是附加的

vba - 如何将=MATCH()公式翻译成VBA

vba - 使用 chart.chartstyle = 248 时,如何关闭轴标题中的所有大写字母?

python - 在 Bokeh 0.12 中为 Span 添加标签

python - 自定义注释 Seaborn 热图

python - 如何用python翻译字符串中的中间项?

python - 找不到 'glue' 的索引页

php - 读取excel数据并按以下格式插入

excel - 如何命名 QueryTable 使用的连接