XlsxWriter:创建新工作表

XlsxWriter: Creating new worksheets

我正在尝试创建新作品sheet,使用 XlsxWriter 将数据写入新的sheet,并在循环的每个新迭代中进行。

我的代码如下:

workbook = xlsxwriter.Workbook('Report.xlsx')
for i in range(0, len(list)):
    worksheet = workbook.add_worksheet()
    #Extract data from the list and add it to the excel sheet
    workbook.close()

现在,这个方法的问题是我只看到一个作品sheet,而不是多个sheet作品。

我哪里错了?

根据评论的更正,即使 XlsxWriter API 允许在修改之间关闭工作簿,它只会在第一次关闭之前写入更改。

import xlsxwriter
import openpyxl

workbook = xlsxwriter.Workbook('test.xlsx')
for i in range(10):
    workbook.add_worksheet()
    workbook.close()
assert len(workbook.worksheets()) == 10
assert len(openpyxl.load_workbook('test.xlsx').sheetnames) == 1

workbook = xlsxwriter.Workbook('test.xlsx')
for i in range(10):
    workbook.add_worksheet()
workbook.close()
assert len(workbook.worksheets()) == 10
assert len(openpyxl.load_workbook('test.xlsx').sheetnames) == 10

在所有工作簿修改之后,您需要将 workbook.close() 移出循环:

workbook = xlsxwriter.Workbook('Report.xlsx')
for i in range(0, len(list)):
    worksheet = workbook.add_worksheet()
    #Extract data from the list and add it to the excel sheet
workbook.close()