excel 使用Python xlsxwriter函数编写的零数据

zzwlnbp8  于 2023-05-19  发布在  Python
关注(0)|答案(1)|浏览(236)

我正在对数据集进行一些分析,并创建了一些我要输出到Excel工作簿中的详细信息。
我一直在尝试在Pandas中使用Openpyxl项目模块xlsxwriter。从MAC到QNap NAS存储。使用此模块的原因是,我可以向输出添加格式,以增强内容的呈现。
我发现一个问题,我不明白,可以做一些帮助。
此代码可以工作并创建一个具有物理大小的excel工作簿,并打开到预期的数据。

df.to_excel('//Volumes/Data/Projectfolder/report.xlsx', engine='xlsxwriter')

然而,这段代码在处理和生成文件时。创建的文件大小为零字节,无法打开。

writer = pd.ExcelWriter('//Volumes/Data/Projectfolder/report.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='report data', index=False)

这个例子是从xlsxwriter文档中得到的,用于Pandas
我的理解是,我需要创建writer对象,这样我就可以访问随后应用格式的工作簿和工作表对象。因此,虽然我可以通过第一个代码路径将数据从Pandas中取出并放入工作簿中,但我想理解为什么我不能按照给定的示例创建writer对象。
所有的答案都非常感谢。
谢谢邓肯

ddrv8njm

ddrv8njm1#

ExcelWriter的文档:
writer应该用作上下文管理器。否则,调用close()保存并关闭所有打开的文件句柄。

所以,要么使用上下文管理器(*..这样做是一个好习惯 *):

with pd.ExcelWriter('//Volumes/Data/Projectfolder/report.xlsx', engine='xlsxwriter') as writer :
    df.to_excel(writer, sheet_name='report data', index=False)

或在保存电子表格后关闭编写器:

writer = pd.ExcelWriter('//Volumes/Data/Projectfolder/report.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='report data', index=False)
writer.close()

相关问题