TypeError: 'NoneType' object is not subscriptable的问题

img
如图所示,我的sheet_name返回的一直是空值,不知道如何解决


import openpyxl

import xlwt
import time

time_start = time.time()

# 创建一个Workbook对象,相当于创建了一个Excel文件
book = xlwt.Workbook(encoding="utf-8", style_compression=0)

for b in range(0, 4, 1):  # b为读取的列数,从B列开始

    # 创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格。
    sheetb = book.add_sheet('sheet' + str(b) + '', cell_overwrite_ok=True)

    for a in range(1, 3, 1):  # 读取文件

        rawdatabook = openpyxl.load_workbook(r'D:\sss\test' + str(a) + '.xlsx')
        # 获取所有sheet

        sheet_name = rawdatabook.sheet_names()[0]

        # 根据sheet索引或者名称获取sheet内容
        sheet = rawdatabook.sheet_by_index(0)  # sheet索引从0开始

        # sheet的名称,行数,列数
        print(sheet.name, sheet.nrows, sheet.ncols)

        for i in range(1, sheet.nrows, 1):
            data = sheet.col_values(b)[0:]  # 读取数据
            sheetb.write(i, a, data[i])  # 写入数据

    print(b)  # 每复制完一列显示一次

book.save('d:\11.xlsx')  # 保存文件

time_end = time.time()
print('totally cost', time_end - time_start)  # 运行时间

print("accomplish")

这是由于你的参数为None导致的。

可能是 openpyxl 版本不同。我获取所有 sheet 都是 sheet_names = rawdatabook.sheetnames