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