openpyxl TypeError: string indices must be integers
openpyxl TypeError: string indices must be integers
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 似乎是最新的,所以我正在尝试使用它,但文档很差。
sheetname0 是第一个 sheet 的名称。因此,当您 运行 sheetname0['A1']
时,您正在做的是尝试访问字符串的元素 A1
- 这是没有意义的。如果您希望访问 sheet 的单元格 A1
,您必须首先访问 sheet 对象。
ws = wb[sheetNames[0]]
现在您有了 sheet,您可以访问单元格:
print(ws['A1'])
也是 Python 的一般提示,考虑到您说您是新手,通常建议您使用 snake_case
作为变量名。
您收到错误 TypeError: string indices must be integers
,因为 sheet0
实际上是一个字符串(不是作品 sheet 本身)。
wb.sheetnames
为您提供所有作品的列表sheet,例如
['Sheet 1', 'Sheet 2', 'Sheet 3']
所以 sheetNames[0]
会给你第一个 sheet 名字 Sheet 1
作为字符串。
要使用数据,您需要首先使用所需的 sheet 名称打开作品sheet。
您还可以使用 wb.active
获取第一个工作 sheet 对象,即 Sheet 1
以避免需要使用 wb.sheetnames
:
import openpyxl
wb = openpyxl.load_workbook('Hello.xlsx')
ws = wb.active
print(ws['A1'].value)
要获得相应的工作sheet对象,您将使用:
ws = wb[wb.sheetnames[0]]
print(ws['A1'].value)
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 似乎是最新的,所以我正在尝试使用它,但文档很差。
sheetname0 是第一个 sheet 的名称。因此,当您 运行 sheetname0['A1']
时,您正在做的是尝试访问字符串的元素 A1
- 这是没有意义的。如果您希望访问 sheet 的单元格 A1
,您必须首先访问 sheet 对象。
ws = wb[sheetNames[0]]
现在您有了 sheet,您可以访问单元格:
print(ws['A1'])
也是 Python 的一般提示,考虑到您说您是新手,通常建议您使用 snake_case
作为变量名。
您收到错误 TypeError: string indices must be integers
,因为 sheet0
实际上是一个字符串(不是作品 sheet 本身)。
wb.sheetnames
为您提供所有作品的列表sheet,例如
['Sheet 1', 'Sheet 2', 'Sheet 3']
所以 sheetNames[0]
会给你第一个 sheet 名字 Sheet 1
作为字符串。
要使用数据,您需要首先使用所需的 sheet 名称打开作品sheet。
您还可以使用 wb.active
获取第一个工作 sheet 对象,即 Sheet 1
以避免需要使用 wb.sheetnames
:
import openpyxl
wb = openpyxl.load_workbook('Hello.xlsx')
ws = wb.active
print(ws['A1'].value)
要获得相应的工作sheet对象,您将使用:
ws = wb[wb.sheetnames[0]]
print(ws['A1'].value)