簡體   English   中英

XlsxWriter:創建新工作表

[英]XlsxWriter: Creating new worksheets

我正在嘗試使用XlsxWriter創建新工作表,以便在每次循環的新迭代中將數據寫入新工作表。

我的代碼如下:

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

現在,這種方法的問題是我只看到一個工作表,而不是多個工作表。

我哪里錯了?

根據注釋的更正,即使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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM