我有一个带有多个选项卡的xlsx文件,其中一个选项卡是Town_names
,其中已经有一些数据。
我想用一个嵌套框-Town_namesDF
-覆盖这些数据,同时保持xlsx选项卡的其余部分不变。
我试过以下方法:
with pd.ExcelWriter(r'path/to/file.xlsx', engine='openpyxl', mode='a') as writer:
Town_namesDF.to_excel(writer,sheet_name='Town_names')
writer.save()
writer.close()
字符串
但它最终创建了一个新的标签Town_names1
,而不是删除Town_names
标签。我错过了什么吗?谢谢。
5条答案
按热度按时间sqserrrh1#
因为你想覆盖,但是没有直接的选项(就像在julia的XLSX中有cell_ref的选项)。只要删除重复的,如果它存在,然后写。
字符串
0tdrvxhp2#
自pandas版本1.3.0以来,有一个新参数:“if_sheet_exists”-“error”,“new”,“replace”}
字符串
siotufzp3#
你可以尝试暂时保存所有其他的工作表,然后再把它们加回去。我不认为这会保存任何公式或格式。
字符串
0mkxixxg4#
好吧,我已经设法做到了。这不是一个干净的解决方案,一点也不快,但我利用了openpyxl文档来使用pandas,可以在这里找到:https://openpyxl.readthedocs.io/en/latest/pandas.html
我有效地选择了
Town_names
工作表,用ws.delete_rows()
清除它,然后将我的框架的每一行附加到工作表。字符串
有点混乱,我希望有一个比我更好的解决方案,但这对我来说很有效。
sg24os4d5#
你可以使用xlwings来完成这个任务。xlwings的一个要求是安装Microsoft Excel。下面是一个例子:
字符串