openpyxl调用BarChart的add_data方法报TypeError如何解决?
问题原因
你没有对BarChart类进行实例化,直接将类本身赋值给了chart变量。调用实例方法add_data时,Python会默认要求传入实例本身作为第一个位置参数(也就是self),你传入的values被识别为self参数,因此系统提示缺少必填的data参数。
修复方案
只需要将chart = BarChart改为chart = BarChart()即可,实例化类之后调用方法就会自动传入实例作为self参数,不需要手动补充其他参数。
修复后完整代码:
import openpyxl as xl from openpyxl.chart import BarChart, Reference wb = xl.load_workbook('transactions.xlsx') sheet = wb['Sheet1'] for row in range (2, sheet.max_row + 1): cell = sheet.cell (row, 3) correct_price = cell.value * 0.9 correct_price_cell = sheet.cell (row, 4) correct_price_cell.value = correct_price values = Reference (sheet, min_row=2, max_row=sheet.max_row, min_col=4, max_col=4) # 实例化BarChart类 chart = BarChart() chart.add_data(values) sheet.add_chart (chart, 'e2') wb.save('transcations2.xlsx')
内容的提问来源于stack exchange,提问作者Or Zemer Tov
相关产品推荐
相关产品推荐

