如何使用Pandas将数据框添加到现有的Excel表单中,在.xlsm文件上。

3
我希望将 Pandas 数据框中的值导入到现有的 Excel 工作表中。我想在不删除其他单元格中已有内容的情况下将数据插入工作表中(例如使用这些数据的公式等)。我尝试使用 data.to_excel,如下所示:
writer = pd.ExcelWriter(r'path\TestBook.xlsm')    
data.to_excel(writer, 'Sheet1', startrow=1, startcol=11, index = False)    
writer.save()

问题在于我这样会覆盖整个表格。 有没有一种方法只添加数据框?如果能保留目标单元格的格式,那就太完美了。 谢谢。

1
也许你会在这里找到答案:可能是重复的 https://dev59.com/5WIj5IYBdhLWcg3wfVB8 - Cribber
我的错,我尝试了那个解决方案,但它没有起作用。但我刚刚注意到我的文件是.xslm格式的,当我这样写时它会损坏。我会更正我的问题。 - micric
1
好的,我发现只需添加keep_vba=True即可(感谢https://stackoverflow.com/questions/49470871/how-write-to-xlsm-using-openpyxl)。 - micric
看起来好像它会破坏宏。 - micric
也许可以尝试这个解决方案:“您可以通过从真实的xlsm文件中提取VbaProject.bin宏文件并将其插入到新文件中来解决最近版本的XlsxWriter的问题。”https://dev59.com/RV4c5IYBdhLWcg3wOoEH - Cribber
显示剩余3条评论
2个回答

0

to_excel函数提供了一个mode参数,可以将数据框插入(w)或追加(a)到Excel工作表中,如下面的示例所示:

with pd.ExcelWriter(p_file_name, mode='a') as writer:
    df.to_excel(writer, sheet_name='Data', startrow=2, startcol=2)

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接