Как исправить ошибку в методе сохранения в пакете openpyxl в Python? - PullRequest
0 голосов
/ 05 июня 2019

Я получаю следующие ошибки при попытке выполнить метод сохранения пакета openpyxl после создания столбчатой ​​диаграммы и добавления ее в существующую книгу

Я попытался отладить код, и он показывает ошибки в книге.Файлы py и excel.py.

import openpyxl as xl
from openpyxl.chart import BarChart, Reference


wb = xl.load_workbook(filename="transactions.xlsx")
sheet = wb['Sheet1']
cell = sheet['A1']
# print(cell.value)

for row in range(2, sheet.max_row + 1):
    # print(row)
    cell = sheet.cell(row=row, column=3)
    # changes here -specified the argument
    corrected_price = cell.value * 0.9
    corrected_price_cell = sheet.cell(row=row, column=4)
    corrected_price_cell.value = corrected_price
    # print(corrected_price_cell.value)

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, 'E2')

wb.save("test2.xlsx")

Ожидаемый результат - столбчатая диаграмма, добавленная в книгу.Отображаются следующие сообщения об ошибках:

Traceback (most recent call last):
  File "C:/Users/megha kss/PycharmProjects/HelloWorld/test.py", line 29, in <module>
    wb.save("test2.xlsx")
  File "C:\Users\megha kss\PycharmProjects\HelloWorld\venv\lib\sitepackages\openpyxl\workbook\workbook.py", line 397, in save
    save_workbook(self, filename)
  File "C:\Users\megha kss\PycharmProjects\HelloWorld\venv\lib\sitepackages\openpyxl\writer\excel.py", line 294, in save_workbook
    writer.save()
  File "C:\Users\megha kss\PycharmProjects\HelloWorld\venv\lib\sitepackages\openpyxl\writer\excel.py", line 276, in save
    self.write_data()
  File "C:\Users\megha kss\PycharmProjects\HelloWorld\venv\lib\sitepackages\openpyxl\writer\excel.py", line 76, in write_data
    self._write_worksheets()
  File "C:\Users\megha kss\PycharmProjects\HelloWorld\venv\lib\sitepackages\openpyxl\writer\excel.py", line 219, in _write_worksheets
    self._write_drawing(ws._drawing)
  File "C:\Users\megha kss\PycharmProjects\HelloWorld\venv\lib\sitepackages\openpyxl\writer\excel.py", line 142, in _write_drawing
    self._archive.writestr(drawing.path[1:], tostring(drawing._write()))
TypeError: 'xml.etree.ElementTree.Element' object is not callable

Process finished with exit code 1

1 Ответ

1 голос
/ 05 июня 2019

enter image description here

# -*- coding: utf-8 -*-
"""
Created on Wed Jun  5 13:01:48 2019

@author: jainil
"""

import openpyxl as xl
from openpyxl.chart import BarChart, Reference


wb = xl.load_workbook(filename="Book1.xlsx")
sheet = wb['Sheet1']
cell = sheet['A1']
print(cell.value)

for row in range(2, sheet.max_row + 1):
    # print(row)
    cell = sheet.cell(row=row, column=3)
    # changes here -specified the argument
    corrected_price = cell.value * 0.9
    corrected_price_cell = sheet.cell(row=row, column=4)
    corrected_price_cell.value = corrected_price
    # print(corrected_price_cell.value)

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, 'E2')

wb.save(' book1.xlsx')
...