Python:将数据写入受保护的.xlsm Excel文件中的列



我有一个受密码保护的.xlsm文件,其中某些列和宏中包含公式。

有没有一种方法可以让我将panda中的数据写入这个.xlsm文件中的特定列?

我尝试过xlwings,但更新10k行需要15分钟,即使Application.ScreenUpdateing=False也是如此。

目前我正在使用如下所示的功能:

import xlwings as xw
def enter_data(path, sheetname, start_column, df):
wb = xw.Book(path)
ws = wb.sheets[sheetname]
for i in range(len(df.columns)):
column = chr(ord(start_column)+i)
for index, row in df.iterrows():
cell = column.upper() + str(index + 3)
ws.range(cell).value = row[i]
wb.save(path)
wb.close()

我知道有一种变通方法,可以将pandas数据帧保存到csv中,并将csv复制粘贴到受密码保护的.xlsm文件中,但如果可能的话,我对完全自动化的过程感兴趣。

谢谢!

不能使用xlwings循环遍历单个单元格。如果您将数组直接分配给一个单元,它将足够快,例如wb.sheets[0].range('A1').value = my_dataframe。请参阅:https://docs.xlwings.org/en/stable/datastructures.html

最新更新