使用pandas的ExcelWriter写入excel表
import pandas as pd
xlsx = pd.ExcelWriter('diff.xlsx')
for i in range(1,5):
df = pd.DataFrame(data=[(1,2,3)])
df.to_excel(xlsx, sheet_name='a', index=False)
df = pd.DataFrame(data=[(1,2,3)])
df.to_excel(xlsx, sheet_name='a', index=False)
在for循环外再次加了一个写入excel的操作,就会报错:Exception caught in workbook destructor. Explicit close() may be require。
这个报错一般是两个原因:
- 写完文件后需要保存关闭。即加上xlsx.save()
- 文件已存在且处于打开状态。即需要关闭文件后再次运行程序
本次代码遇到的是情况一,需要在for循环外,先xlsx.save(),然后再写入。
修改后还是报错。后来使用python3.6创建了个虚拟环境使用,仍旧需要xlsx.save(),可以成功运行。
修改后python3.6代码如下
import pandas as pd
xlsx = pd.ExcelWriter('diff.xlsx')
for i in range(1,5):
df = pd.DataFrame(data=[(1,2,3)])
df.to_excel(xlsx, sheet_name='a', index=False)
df = pd.DataFrame(data=[(1,2,3)])
df.to_excel(xlsx, sheet_name='a', index=False)
xlsx.save()