【问题标题】:Openpyxl - WinError 32 while trying to save workbook after formatting appliedOpenpyxl - 应用格式化后尝试保存工作簿时出现 WinError 32
【发布时间】:2019-10-07 14:45:14
【问题描述】:

当我对工作表应用格式设置时(例如,将 row_dimensions 设置为整数,或将列维度设置为整数),我无法保存工作簿。

代码sn-p:

import openpyxl

wb = openpyxl.Workbook()
ws = wb.active
ws['A1'].value = 'test'
ws.row_dimensions[1] = 10
wb.save('example.xlsx')

追溯信息:

Traceback (most recent call last):
  File "<>", line 7, in <module>
    wb.save('practicewb')
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\openpyxl\workbook\workbook.py", line 409, in save
    save_workbook(self, filename)
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\openpyxl\writer\excel.py", line 294, in save_workbook
    writer.save()
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\openpyxl\writer\excel.py", line 276, in save
    self.write_data()
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\openpyxl\writer\excel.py", line 76, in write_data
    self._write_worksheets()
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\openpyxl\writer\excel.py", line 216, in _write_worksheets
    self.write_worksheet(ws)
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\openpyxl\writer\excel.py", line 201, in write_worksheet
    writer.write()
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\openpyxl\worksheet\_writer.py", line 356, in write
    self.write_rows()
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\openpyxl\worksheet\_writer.py", line 124, in write_rows
    self.write_row(xf, row, row_idx)
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\openpyxl\worksheet\_writer.py", line 133, in write_row
    attrs.update(dims.get(row_idx, {}))
TypeError: 'int' object is not iterable
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\openpyxl\worksheet\_writer.py", line 33, in _openpyxl_shutdown
    os.remove(path)
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\philt\\AppData\\Local\\Temp\\openpyxl.gtzivgcp'

Process finished with exit code 1

除了 openpyxl 本身之外,我没有打开任何正在使用工作簿的文件夹或程序。

这可能是什么问题?

谢谢!

【问题讨论】:

  • 您需要设置相关行的高度。您的代码只是将行设置为数字 10。

标签: python-3.x winapi formatting openpyxl


【解决方案1】:
import openpyxl

wb = openpyxl.Workbook()
ws = wb.active
ws['A1'].value = 'test'
ws.row_dimensions[1].height = 10
wb.save('example.xlsx')

【讨论】:

  • @philip tecklenburg 这是否有助于解决您的问题?
  • 我遇到了同样的问题,这为我解决了。这应该是公认的答案
猜你喜欢
  • 2014-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-19
  • 1970-01-01
  • 2017-04-19
  • 1970-01-01
相关资源
最近更新 更多