写入多个工作表

Write to multiple worksheets

我需要将 sheet 的名字存储在一个列表中并写入多个 sheet。 下面是我的代码

for row_num, obj in enumerate(list,1):
    sheet = workbook.add_worksheet(obj.Attribute1)
    sheet.write(row_num, 0, obj.Attr1)
    sheet.write(row_num, 1, obj.Attr2)
    sheet.write(row_num, 2, obj.Attr3)
    ....

我想为列表中的每个对象创建一个 sheet。上面的代码正在创建多个具有所需名称的 sheet,但数据仅存在于第一个 sheet.

它应该按预期工作。

这里是你的示例代码封装到一个工作示例中:

import xlsxwriter


class MyObj:
   def __init__(self, id):
      self.Attribute1 = 'Sheet%s' % id
      self.Attr1 = 'Attr1'
      self.Attr2 = 'Attr2'
      self.Attr3 = 'Attr3'

obj_list = []
for id in range(1, 4):
    my_obj = MyObj(id)
    obj_list.append(my_obj)

workbook = xlsxwriter.Workbook('test.xlsx')

for row_num, obj in enumerate(obj_list, 1):
    sheet = workbook.add_worksheet(obj.Attribute1)
    sheet.write(row_num, 0, obj.Attr1)
    sheet.write(row_num, 1, obj.Attr2)
    sheet.write(row_num, 2, obj.Attr3)

workbook.close()

输出: