Openpyxl工作表不存在

2024-10-08 18:26:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用openpyxl写入单元格,但收到错误“工作表Sheet1不存在”

def CreateWorkbook(workbook_path):
    workbook = openpyxl.Workbook()
    workbook.save(workbook_path)
    return workbook_path

def CreateSheet(workbook, sheet_name):
    workbook.create_sheet(sheet_name)
    workbook.save(workbook_path)
    return sheet_name

def WriteCell(workbook, sheet_name, cell, cell_data):
    worksheet = workbook[sheet_name]
    worksheet[cell] = cell_data
    return

workbook = CreateWorkbook('workbook1.xlsx')
sheet = CreateSheet(workbook, 'Sheet1')
WriteCell(workbook, sheet, 'A1', 'testing')

Tags: pathnamedatareturnsavedefcellsheet
2条回答

这段代码不是很好,并且有多个错误。例如,在CreateWorkbook中,创建工作簿,然后保存它。但是,在CreateSheet中,实际上不需要重新打开该文件。每次保存后都必须重新打开该文件。以下是我修复这些错误的方法:

import openpyxl

def CreateWorkbook(workbook_path):    
    workbook = openpyxl.Workbook()
    workbook.save(workbook_path)
    return workbook_path

def CreateSheet(workbook, sheet_name):
    wb = openpyxl.load_workbook(workbook)
    wb.create_sheet(sheet_name)
    wb.save(workbook)
    return sheet_name

def WriteCell(workbook, sheet_name, cell, cell_data):
    wb = openpyxl.load_workbook(workbook)
    worksheet = wb[sheet_name]
    worksheet[cell] = cell_data
    wb.save(workbook)
    return

workbook = CreateWorkbook('workbook1.xlsx')
sheet = CreateSheet(workbook, 'Sheet1')
WriteCell(workbook, sheet, 'A1', 'testing')

我希望这对你有用

也许你应该发布完整的类代码,有些东西没有真正意义,比如:

def CreateSheet(workbook, sheet_name):
workbook.create_sheet(sheet_name)
workbook.save(workbook_path)
return sheet_name

当您返回sheet_name-这与您在输入中给出的值基本相同,它是没有意义的。其次,您使用workbook_path作为参数,我假设它是一个class属性,否则不清楚如何在方法中使用它

还包括:

def CreateWorkbook(workbook_path):
workbook = openpyxl.Workbook()
workbook.save(workbook_path)
return workbook_path

返回相同的输入参数路径,这同样没有意义,在下面的代码中使用workbook_path作为workbook。这可能是个错误,但也有一些错误,所以也可能是其他错误

对于您的问题,请尝试调试代码,最终在每个方法上打印出创建的对象实际已创建的“证明”

相关问题 更多 >

    热门问题