openpyxl TypeError:字符串索引必须是整数

时间:2018-03-10 19:18:02

标签: python typeerror openpyxl

import openpyxl, os 

cwd = os.getcwd()
print(cwd)

wb = openpyxl.load_workbook('Hello.xlsx')
print (type(wb))

sheetNames = wb.sheetnames
print(sheetNames[1])

sheet0 = sheetNames[0]
print (sheet0['A1']) <--TypeError: string indices must be integers

我也试过在最后使用.value。单元格中包含数字55。我是python的新手所以请帮助。另外,如果有人在excel和python上有一个很好的资源,那将会有所帮助。 openpyxl似乎是最新的,所以我试图使用它,但文档很差。

2 个答案:

答案 0 :(得分:1)

sheetname0是第一张表的名称。因此,当您运行A1时,您正在做的是尝试访问字符串的元素A1 - 这是没有意义的。如果您希望访问该工作表的单元格ws = wb[sheetNames[0]],则必须首先访问该工作表对象。

print(ws['A1'])

现在您已拥有该表格,您可以访问该单元格:

snake_case

也是Python的一般提示,考虑到你说你是新手,它通常建议你使用use Illuminate\Support\Facades\Schema; public function boot() { Schema::defaultStringLength(191); } 作为变量名。

答案 1 :(得分:0)

默认情况下,您可以使用wb.active获取第一个工作表对象:

import openpyxl

wb = openpyxl.load_workbook('Hello.xlsx')
ws = wb.active
print(ws['A1'].value)

wb.sheetnames为您提供了所有工作表名称的列表,例如['Sheet1', 'Sheet2']。要获取相应的工作表对象,您将使用:

ws = wb[wb.sheetnames[0]]
print(ws['A1'].value)