1

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

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

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

谢谢!

4

1 回答 1

3

...是的

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")
于 2012-08-14T17:41:26.720 回答