在内存 openpyxl 中创建空工作簿

create empty workbook in memory openpyxl

from openpyxl import Workbook
book = Workbook()
for country in "IN US JP UK".split():
    book.create_sheet(title=country)

这会创建 5 个 sheet,第一个 sheet 是不需要的。

我知道我可以做到:

book = Workbook()
us_ws = book.active
us_ws.title = "IN"
for country in "US JP UK".split():
    book.create_sheet(title=country)

有捷径吗?

来自 (Docs)

A workbook is always created with at least one worksheet. You can get it by using the openpyxl.workbook.Workbook.active() property

所以如果你不需要默认的sheet,你可以删除它:

from openpyxl import Workbook

book = Workbook()
book.remove(book.active)
for country in "IN US JP UK".split():
    book.create_sheet(title=country)

这将删除第一个 sheet,这将是默认创建的 sheet,然后再创建所需的 sheet。

或者,正如评论中所指出的,如果您同意只写工作簿的注意事项,您可以这样做:

from openpyxl import Workbook

book = Workbook(write_only=True)
for country  in "IN US JP UK".split():
    book.create_sheet(title=country )

根据@CharlieClark

的建议,这是解决方案
from openpyxl import Workbook

book = Workbook(write_only=True)
for cc in "IN US JP UK".split():
    book.create_sheet(title=cc)