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

2024-09-30 10:29:24 发布

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

我不得不编写一个非常烦人的脚本,它使用一个excel文件来更新另一个excel文件,但是因为您不能直接编辑xls文件,也不能插入行,所以我不得不即兴发挥。在

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

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

谢谢!在


Tags: 模块文件函数脚本编辑xlsexcelxlwt
1条回答
网友
1楼 · 发布于 2024-09-30 10:29:24

……是的

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")

相关问题 更多 >

    热门问题