在不丢失宏的情况下使用pandas、openpyxl、xlwing更新现有的xlsm工作表,可以按照以下步骤进行操作:
import pandas as pd
from openpyxl import load_workbook
from xlwings import App, Book
df = pd.read_excel('path_to_existing_file.xlsm', sheet_name='sheet_name')
# 进行数据处理和更新操作,例如修改某些单元格的值或添加新的数据
df['column_name'] = 'new_value'
df.to_excel('temp_file.xlsx', index=False)
app = App(visible=False)
book = Book('path_to_existing_file.xlsm')
wb = book.api
wb_temp = load_workbook('temp_file.xlsx')
ws_temp = wb_temp.active
ws = wb['sheet_name']
# 清空原始工作表中的数据
ws.delete_rows(2, ws.max_row)
# 将临时文件中的数据复制到原始工作表中
for row in ws_temp.iter_rows(min_row=2, values_only=True):
ws.append(row)
# 保存并关闭工作表
wb.save()
wb.close()
app.quit()
import os
os.remove('temp_file.xlsx')
这样就可以在不丢失宏的情况下使用pandas、openpyxl、xlwing更新现有的xlsm工作表了。
注意:以上代码示例中的路径需要根据实际情况进行修改,同时需要根据具体需求进行适当的调整和扩展。
领取专属 10元无门槛券
手把手带您无忧上云