我有一个受密码保护的.xlsm文件,其中某些列和宏中包含公式。
我是否可以将熊猫中的数据写入此.xlsm文件中的特定列?
我尝试了xlwings,但是即使使用Application.ScreenUpdating = False,也要花费15分钟来更新1万行。
当前我正在使用如下所示的函数:
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文件中,但是,如果可能的话,我对全自动过程感兴趣。
谢谢!
答案 0 :(得分:0)
您不得通过xlwings遍历单个单元格。如果您直接将阵列分配给单元格,它将足够快,例如wb.sheets[0].range('A1').value = my_dataframe
。请参阅:https://docs.xlwings.org/en/stable/datastructures.html