在内存中创建空工作簿openpyxl

Rah*_*hul 2 python openpyxl

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

这将创建5张纸,而第一张纸是不需要的。

我知道我可以这样做:

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

有捷径吗?

Ste*_*uch 5

从(文档

始终使用至少一个工作表创建一个工作簿。您可以使用openpyxl.workbook.Workbook.active()属性获取它

因此,如果不需要默认工作表,则可以将其删除:

from openpyxl import Workbook

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

在创建所需的图纸之前,这将删除第一张图纸,这将是默认创建的图纸。

或者,如注释中所指出的,如果您对只写工作簿的警告表示满意,则可以执行以下操作:

from openpyxl import Workbook

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