如何使用openpyxl在同一工作簿中同时写两张纸

Mal*_*jun 3 python excel openpyxl

我必须使用约5个工作表来创建和编写新的Excel工作簿。我的代码的目的是读取数据库,并根据特定条件将其拆分为不同的工作表。

我在python 2.7中使用以下代码使用openpyxl-1.1.0

from openpyxl.workbook import Workbook
dest_filename = 'D:\\Splitted.xlsx'

wb = Workbook()
ws1 = wb.worksheets[0]
ws1.title = 'Criterion1'

ws2 = wb.worksheets[1]
ws2.title = 'Criterion2'

## Read Database, get criterion
if criterion == Criterion1:
    ws1.cell('A1').value = 'A1'
    ws1.cell('B1').value = 'B1'
elif criterion == Criterion2:
    ws2.cell('A1').value = 'A2'
    ws2.cell('B1').value = 'B2'

wb.save(filename = dest_filename)
Run Code Online (Sandbox Code Playgroud)

我可以写一张工作表,但是如果尝试创建第二个工作表,则在代码ws2 = wb.worksheets [1]时出现错误,提示“索引超出范围”

有什么解决方案可以在一个工作簿中同时编写2个或更多工作表?

Cha*_*ark 5

您不应该尝试通过索引访问工作表。该错误是因为尚未创建第二个工作表(每个工作簿都有一个自动创建的工作表)。

ws1 = wb.active
ws2 = wb.create_sheet()
Run Code Online (Sandbox Code Playgroud)

应该解决你的问题。