无法用openpyx写入输出excel文件

2024-09-28 19:32:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在使用openpyxl编写一个脚本,这个脚本一直正常工作,直到昨天我意外地关闭了GUI中间进程。从那时起,我的脚本就无法保存到任何目录下的新excel文件中。我正在使用PyCharm作为我的IDE。每当我运行脚本时,都会收到以下错误:

WindowsError: [Error 32] The process cannot access the file because it is being used by another process: 'c:\users\username\appdata\local\temp\openpyxl.izzaxe'

这是正常工作,所以我不认为这是一个问题,我的代码,但我已经包括一个片段如下:

wb = load_workbook(filename=r'PATH TO SOME EXCEL FILE')
header = wb['Sheet1'][1:1]
listheader = []
for h in listheader:
    listheader.append(h.value)
wb['Sheet2'].append(listheader)
wb.save(filename=r'PATH TO A DIFFERENT EXCEL FILE'

我已关闭PyCharm并重新打开,但仍收到错误消息。我还导航到**c:\users\username\appdata\local\temp**并删除了导致阻塞的文件,但当我重新运行脚本时,在同一目录中会生成一个具有不同扩展名的新openpyxl文件,并阻止我的脚本保存新文件。我目前在**appdata\local\temp**目录中有5个不同的openpyxl临时文件,扩展名是随机的

我也重新启动了我的电脑,卸载和重新安装了openpyxl与pip都没有成功。我还尝试通过CMD和IDLE运行脚本,但收到相同的错误消息

我使用的是python2.7,这是必需的,因为它是ArcGIS附带的默认Python安装,我需要访问arcpy模块的元数据功能,而arcpy模块没有python3的等效功能。非常感谢您的帮助


Tags: 文件目录脚本local错误usernamefilenameprocess
1条回答
网友
1楼 · 发布于 2024-09-28 19:32:37

原来这实际上是由我的一部分代码引起的。我为我的输出定义列维度如下:

wb['Sheet1'].column_dimensions['A'] = 100
wb['Sheet1'].column_dimensions['C'] = 50
wb['Sheet1'].column_dimensions['D'] = 50
wb['Sheet1'].column_dimensions['E'] = 150
wb['Sheet1'].column_dimensions['F'] = 150

不包括width属性是导致脚本失败的原因。将上述内容修改为以下内容解决了我的问题:

wb['Sheet1'].column_dimensions['A'].width = 100
wb['Sheet1'].column_dimensions['C'].width = 50
wb['Sheet1'].column_dimensions['D'].width = 50
wb['Sheet1'].column_dimensions['E'].width = 150
wb['Sheet1'].column_dimensions['F'].width = 150

这可能是我找到答案的以下线索的副本: Stuck on AttributeError: 'int' object has no attribute 'reindex' when trying to save workbook in openpyxl

相关问题 更多 >