Python 您可以在不同的函数中使用同一个xlwt工作簿实例吗?

Python 您可以在不同的函数中使用同一个xlwt工作簿实例吗?,python,excel,xls,xlwt,Python,Excel,Xls,Xlwt,我必须编写一个非常烦人的脚本,它使用一个excel文件来更新另一个excel文件,但因为您不能直接编辑xls文件,也不能插入行,所以我不得不临时修改 现在我的问题是: 使用Python的xlwt模块(使用2.7x),当您创建工作簿并处理它时,如何写入在不同函数中创建的同一工作表?我可以用它的变量名来回传递工作簿吗?如果是,如何访问我制作的第一个工作表工作簿[0] 我有多个函数需要与我正在制作的xlwt xls文件交互,所以我只想确保我可以将它传递给不同的函数 谢谢 …是的 import xlwt

我必须编写一个非常烦人的脚本,它使用一个excel文件来更新另一个excel文件,但因为您不能直接编辑xls文件,也不能插入行,所以我不得不临时修改

现在我的问题是: 使用Python的xlwt模块(使用2.7x),当您创建工作簿并处理它时,如何写入在不同函数中创建的同一工作表?我可以用它的变量名来回传递工作簿吗?如果是,如何访问我制作的第一个工作表工作簿[0]

我有多个函数需要与我正在制作的xlwt xls文件交互,所以我只想确保我可以将它传递给不同的函数

谢谢

…是的

import xlwt
class MyWorkbook:
    ''' allow access to a workbooks sheets'''
    def __init__(self,*args,**kwargs):
        self.wb = xlwt.Workbook(*args,**kwargs)
        self.sheets = []
    def add_sheet(self,sheet_name):
        self.sheets.append(self.wb.add_sheet(sheet_name))
        return self.sheets[-1]
    def GetSheetByIndex(self,n):
        return self.sheets[n]
    def save(self,fname_or_stream):
        return self.wb.save(fname_or_stream)

def CreateWB():
    ''' return a MyWorkbook instance with 1 sheet'''
    m= MyWorkbook()
    m.add_sheet("first_sheet")
    return m
def ModifySheet0(mwb):
    '''uses instance of MyWorkbook and modifies sheet0'''
    s = mwb.GetSheetByIndex(0)
    s.write(0,0,"Hello World!")
def DoItAll()
    '''passing around MyWorkbook'''
    wb = CreateWB()
    ModifySheet0(wb)
    wb.save("somefile.xls")

嘿,你的解释对几乎所有事情都有帮助,但我还有最后一个问题,因为我的代码的最后一部分出现了一个错误。我遇到以下错误:AttributeError:“工作簿”对象没有属性“sheets”,如果我没有弄错,这意味着我无法使用.sheets[]从xlwt工作簿访问特定的工作表。有解决办法吗?或者我忘记导入什么了?是的,你做错了什么。。。工作表是我的工作簿的一部分,而不是工作簿。。。您必须创建一个类来跟踪您的MyWorkbook类是否使用xlwt工作簿中的方法?总之,我只是制作了我添加的表,一个全局变量,所以我不必不断地检索它。