如何根据不同的条件将数据写入多个单一工作簿?

我试图将testing用例分为四类:

  1. 手动烟
  2. 手动回归
  3. 自动烟雾
  4. 自动回归

我有一个Python代码,这将给我这样的字典:

"ABC": { "id1": "name1", "id2": "name2", "id3": "name3" } 

我已经使用xlsxwriter编写了以下代码,但是这遍历了所有表单,但只保存了最后一个表单。 在我的世界银行,我只拿到最后一张。

 def createExcelSheetTC(self,testcase): workbook=xlsxwriter.Workbook('data.xlsx') self.format_excelWB(workbook) with xlsxwriter.Workbook('data.xlsx') as workbook: self.format_excelWB(workbook) ##Initialize formatting of WB if testcase == self.manualSmoke: ws_manualSmoke=workbook.add_worksheet('Manual-Smoke Cases') self.writeTCExcel(testcase,ws_manualSmoke) elif testcase == self.manualRegression: ws_manualRegression=workbook.add_worksheet('Manual-Regression Cases') self.writeTCExcel(testcase,ws_manualRegression) elif testcase == self.automatedSmoke: ws_autoSmoke=workbook.add_worksheet('Automated-Smoke Cases') self.writeTCExcel(testcase,ws_autoSmoke) elif testcase == self.automatedRegression: ws_autoRegression=workbook.add_worksheet('Automated-Regression Cases') self.writeTCExcel(testcase,ws_autoRegression) workbook.close() def writeTCExcel(self,tc,worksheet): ##Logic to write testcase in EXCEL ## This is correct as per requirements self.manualSmoke=self.get_test_cases(args*) self.createExcelSheetTC(testcase=self.manualSmoke) self.manualRegression=self.get_test_cases(args*) self.createExcelSheetTC(testcase=self.manualRegression) self.automatedSmoke=self.get_test_cases(args*) self.createExcelSheetTC(testcase=self.automatedSmoke) self.automatedRegression=self.get_test_cases(args*) self.createExcelSheetTC(testcase=self.automatedRegression) 

使用上面的代码,我得到“自动回归”的情况下,而不是其他3.它看起来像它只能保存在最后&覆盖所有其他写作。

每次调用def createExcelSheetTC ,都会覆盖xlsx ,所以只能看到最后一个。

移动这些外部def createExcelSheetTC调用一次。

 workbook=xlsxwriter.Workbook('data.xlsx') self.format_excelWB(workbook) ... workbook.close() 

它通过使用以下方法得到解决。

 import xlsxwriter d1 = { "ABC": { "key1": "val1", "key2": "val2", "key3": "val3" }, "XYZ": { "key4": "val4", "key5": "val5", "key6": "val6" } } d2= { "MNO": { "key7": "val7", "key8": "val8", "key9": "val9" } } def create_xls_writer(tc): workbook=xlsxwriter.Workbook('xlsxwriter.xlsx') print tc ws1=workbook.add_worksheet('abc') ws2=workbook.add_worksheet('xyz') worksheet = [ws1,ws2] for each_tc in tc: if each_tc==d1: writeTCEXcel(each_tc,ws1) elif each_tc==d2: writeTCEXcel(each_tc,ws2) workbook.close() def writeTCEXcel(something,worksheet): ##Logic to write **Something** in EXCEL create_xls_writer([d1,d2])