python - 从 openpyxl 到 xlwings
问题描述
我的任务:使用宏在已经存在的 Excel 电子表格中自动执行一些计算。
问题:我使用 openpyxl 这样做只是为了后来意识到一旦保存新文件就不会保留宏(如果将新文件保存为 xlsm 它会损坏,如果将其保存为 xlsx - 不会保留宏)。我在网上尝试了一些建议的解决方案(都没有奏效),以挽救一个运行良好的 xlsm。
我想我可能应该在 xlwings 中进行数据操作,这应该会保留宏。但是,我一直在努力使我的 openpyxl 代码适应 xlwings:
#Z-scores
df_excel=pd.read_excel("zz3.xlsm", engine="openpyxl")
df_name=df_excel[["Name"]]
df_excel=pd.read_excel("zz3.xlsm", engine="openpyxl", index_col=None, usecols="GN:IV")
df_zscore=(df_excel-df_excel.mean())/df_excel.std()
df55=pd.DataFrame()
df55=df_zscore.copy()
df55["Name"]=df_name.copy()
cols=list(df55.columns)
cols=[cols[-1]]+cols[:-1]
df55=df55[cols]
print(df55)
writer=pd.ExcelWriter("zz3.xlsx", engine="openpyxl")
df55.to_excel(writer, sheet_name="Skew scores", index=False)
writer.save()
#12-month moving averages
df_excel=pd.read_excel("zscores.xlsm", engine="openpyxl")
df_ma12=df_excel.rolling(12).mean()
print(df_ma12)```
解决方案
推荐阅读
- java - 如何将二维数组转换为Set?
- spring-boot - 如何在 Dynamo DB 中建立一对多关系?
- javascript - 使用 d3 js 在半甜甜圈饼图中包装标签
- javascript - JQuery自动完成源不更新
- javascript - 如何更改 vue js 模板中的日期格式
- c# - 我们必须在 Android 的 MvvmCross 中初始化 Xamarin.Forms 吗?
- mysql - 错误:错误:ER_BAD_FIELD_ERROR:“where 子句”中的未知列“用户”
- javascript - 如何将一个数组转换为另一个数组
- amazon-elb - AWS中ELB协议和端口号的区别
- mongodb - 稀疏索引不会改善 MongoDB 中的排序?