我有一个受密码保护的.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