保存工作簿时出现KeyError [英] KeyError when saving workbook

查看:279
本文介绍了保存工作簿时出现KeyError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

transactions.xlsx文件未更新,这完全是由于add_chart()引起的.如果我注释掉add_chart,不会出现所有这些错误,但是我想绘制图表,这是我知道的唯一方法. transanctions2.xlsx文件已创建,但已损坏,但确实出现了许多错误.

The file transactions.xlsx is not updated and this is precisely due to add_chart(). If I comment out add_chart all these errors does not arise but I want to draw chart and this is the only method I know. transanctions2.xlsx file is created but it is corrupted whereas bunch of errors do come up.

from openpyxl.chart import BarChart, Reference

wb1 = xl.load_workbook('transactions.xlsx')
sheet = wb1['Sheet1']
cell = sheet.cell(1, 1)

for row in range(2, sheet.max_row + 1):
    cell = sheet.cell(row, 3)
    corrected_price = cell.value * 0.9
    corrected_price_cell = sheet.cell(row, 4)
    corrected_price_cell.value = corrected_price

values = Reference(sheet,
                   min_row=2,
                   max_row=sheet.max_row,
                   min_col=4,
                   max_col=4)
chart = BarChart()
chart.add_data(values)
sheet.add_chart(chart, 'f2')

wb1.save('transactions2.xlsx')

Traceback (most recent call last):
  File "C:/Users/Saman/PycharmProjects/Excel/excel_edit.py", line 23, in <module>
    wb1.save('transactions2.xlsx')
  File "C:\Users\Saman\PycharmProjects\Excel\venv\lib\site-packages\openpyxl\workbook\workbook.py", line 397, in save
    save_workbook(self, filename)
  File "C:\Users\Saman\PycharmProjects\Excel\venv\lib\site-packages\openpyxl\writer\excel.py", line 294, in save_workbook
    writer.save()
  File "C:\Users\Saman\PycharmProjects\Excel\venv\lib\site-packages\openpyxl\writer\excel.py", line 276, in save
    self.write_data()
  File "C:\Users\Saman\PycharmProjects\Excel\venv\lib\site-packages\openpyxl\writer\excel.py", line 76, in write_data
    self._write_worksheets()
  File "C:\Users\Saman\PycharmProjects\Excel\venv\lib\site-packages\openpyxl\writer\excel.py", line 219, in _write_worksheets
    self._write_drawing(ws._drawing)
  File "C:\Users\Saman\PycharmProjects\Excel\venv\lib\site-packages\openpyxl\writer\excel.py", line 142, in _write_drawing
    self._archive.writestr(drawing.path[1:], tostring(drawing._write()))
  File "C:\Users\Saman\PycharmProjects\Excel\venv\lib\site-packages\openpyxl\drawing\spreadsheet_drawing.py", line 283, in _write
    anchor = _check_anchor(obj)
  File "C:\Users\Saman\PycharmProjects\Excel\venv\lib\site-packages\openpyxl\drawing\spreadsheet_drawing.py", line 224, in _check_anchor
    row, col = coordinate_to_tuple(anchor)
  File "C:\Users\Saman\PycharmProjects\Excel\venv\lib\site-packages\openpyxl\utils\cell.py", line 201, in coordinate_to_tuple
    return int(row), _COL_STRING_CACHE[col]
KeyError: 'f'

推荐答案

命名列时大小写很重要-具体来说,它们是大写的:

The case matters when naming columns - specifically, they are uppercase:

sheet.add_chart(chart, 'F2')

我将f更改为F.

这篇关于保存工作簿时出现KeyError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆