【发布时间】:2019-06-26 14:06:13
【问题描述】:
代码最后给出了一个错误,说 KeyError。但我相信导师写的代码是正确的。
import openpyxl as xl
from openpyxl.chart import BarChart, Reference
def process_workbook(filename):
wb = xl.load_workbook(filename)
sheet = wb['Sheet1']
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() #instance of BarChart class
chart.add_data(values)
sheet.add_chart(chart, 'e2')
wb.save(filename)
filename = 'transactions.xlsx'
work = process_workbook(filename)
C:\Users\bhargav\PycharmProjects\SelfLearning\venv\Scripts\python.exe C:/Users/bhargav/PycharmProjects/SelfLearning/app.py
Traceback(最近一次调用最后一次):文件 “C:/Users/bhargav/PycharmProjects/SelfLearning/app.py”,第 26 行,在 工作 = 进程工作簿(文件名)
文件“C:/Users/bhargav/PycharmProjects/SelfLearning/app.py”,第 5 行, 在 process_workbook wb = xl.load_workbook(文件名)
文件 "C:\Users\bhargav\PycharmProjects\SelfLearning\venv\lib\site-packages\openpyxl\reader\excel.py", 第 312 行,在 load_workbook 中 reader.read()
文件 "C:\Users\bhargav\PycharmProjects\SelfLearning\venv\lib\site-packages\openpyxl\reader\excel.py", 第 268 行,已读 self.read_manifest()
文件 "C:\Users\bhargav\PycharmProjects\SelfLearning\venv\lib\site-packages\openpyxl\reader\excel.py", 第 136 行,在 read_manifest 中 src = self.archive.read(ARC_CONTENT_TYPES)
文件 "C:\Users\bhargav\AppData\Local\Programs\Python\Python37-32\lib\zipfile.py", 第 1428 行,读取中 with self.open(name, "r", pwd) as fp:
文件 "C:\Users\bhargav\AppData\Local\Programs\Python\Python37-32\lib\zipfile.py", 第 1467 行,打开 zinfo = self.getinfo(name)
文件 "C:\Users\bhargav\AppData\Local\Programs\Python\Python37-32\lib\zipfile.py", 第 1395 行,在 getinfo 中 '存档中没有名为 %r 的项目' % name) KeyError: "存档中没有名为 '[Content_Types].xml' 的项目"
进程以退出代码 1 结束
【问题讨论】:
-
你试过大写的 E
-
“中间的许多错误行”对于回答问题可能非常重要
-
是的,我尝试使用“E”但没有用
-
你有正确的文件名吗?如果你这样做,文件是否与你的文件在同一目录中?
-
也许你应该看看最后一个错误......