0
我知道這種問題已被問及接受答案已被給出。但該解決方案對我無效。所以我分開問這個問題。Openpyxl錯誤:Keyerror(工作表<0>不存在)
我在我的文檔目錄2個Excel文件:
- pythonread.xlsx
- pythonread.xls
兩者有相同的數字數據。這兩個文件都是由我創建的,以檢查我是否可以運行簡單的基於openpyxl的腳本。 這裏是腳本: -
from xlrd import open_workbook
from openpyxl import Workbook
wb = open_workbook('C:\\Users\\patilpb\\Documents\\pythonread.xls')
wb1 = Workbook('C:\\Users\\patilpb\\Documents\\pythonread.xlsx')
for s in wb.sheets():
print 'Sheet:',s.name
values = []
for row in range(s.nrows):
col_value = []
for col in range(s.ncols):
value = (s.cell(row,col).value)
try : value = str(int(value))
except : pass
col_value.append(value)
values.append(col_value)
#print values
wb1_1 = wb1.get_sheet_by_name('Sheet1')
wb1_2 = wb1['Sheet2']
cell_range = wb1_1['B3':'B100']
print cell_range.value
在運行腳本(蟒蛇目前提示也跑Winpython提示符),我得到以下錯誤:
Traceback (most recent call last):
wb1_1 = wb1.get_sheet_by_name('Sheet1')
File "C:\~path~\workbook.py", line 173, in get_sheet_by_name
return self[name]
File "C:\~path~\workbook.py", line 192 in __getitem__
raise KeyError("Worksheet (0) does not exist." .format(key))
KeyError: 'Worksheet Sheet1 does not exist.'
在此之前,對於xlrd進口XLS命令文件執行得很好。並且它會打印默認紙張的名稱(Sheet1,2 & 3)。即使讀取(如果我想)打印數據。但是.xlsx文件不會發生同樣的情況。我做錯了什麼?
什麼的'wb1.get_sheet_names()'返回? – alecxe
您是否嘗試過load_workbook方法? https://openpyxl.readthedocs.org/en/default/tutorial.html#loading-from-a-file – alpert
FWIW xlrd可以很好地讀取XSLX文件。 –