python - 使用 pandas 读取和更新 XLSM 文件中的工作表,同时保留 VBA 代码
问题描述
我需要读取 xlsm 文件并更新文件中的一些工作表。我想为此目的使用熊猫。
我尝试了以下帖子中提供的答案。当我重新添加 VBA 项目时,我看不到 VBA 宏。
https://stackoverflow.com/posts/28170939/revisions
这是我尝试的步骤,
从 original.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 文件?
另外,有没有办法我可以打开“xlsm”文件本身而不是使用“xlsx”对应文件pd.ExcelWriter
?
解决方案
你可以用 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)
推荐阅读
- node.js - 构建后电子Linux应用程序不显示图标
- angular - Angular 2 routerLink 参数和查询参数
- oracle - APEX 办公室打印
- php - 为什么光标 CSS 在 Gmail 中不起作用?
- azure-data-factory - JIRA 复制 Azure 数据工厂中的自定义字段
- javascript - 使用 javascript 检查开始持续时间和结束持续时间验证
- java - 将回调转换为反应式发布者 (Flux)
- sql - 修改数据库而不改变数据库状态的测试代码
- c# - 当 UserPrincipal 中的专有名称包含特殊字符(在我的情况下为逗号)时,UserPrincipal.GetAuthorizationGroups() 抛出异常
- ios - UIPickerView 作为 UITextView swift 的 inputView