Python 使用openpyxl对XLSX工作簿中的选项卡进行排序

Python 使用openpyxl对XLSX工作簿中的选项卡进行排序,python,openpyxl,Python,Openpyxl,我不确定是否应该或不应该创建一个新问题,因为接受的答案不起作用。请告知。我是否只是回答了同一个问题作为答案?这是同样的问题:。我不确定它是否因为用户问题(通常是)或openpyxl的旧/新版本而无法工作 这是我的密码: from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet("B") ws2 = wb.create_sheet("A") ws3 = wb.create_sheet("C") ws4 = wb.cre

我不确定是否应该或不应该创建一个新问题,因为接受的答案不起作用。请告知。我是否只是回答了同一个问题作为答案?这是同样的问题:。我不确定它是否因为用户问题(通常是)或openpyxl的旧/新版本而无法工作

这是我的密码:

from openpyxl import Workbook
wb = Workbook()

ws1 = wb.create_sheet("B")
ws2 = wb.create_sheet("A")
ws3 = wb.create_sheet("C")
ws4 = wb.create_sheet("D")

wb._sheets = sorted(wb._sheets) #Error comes up at this line

wb.save('test_tabs.xlsx')
我收到了以下错误:

TypeError: '<' not supported between instances of 'Worksheet' and 'Worksheet'

下面的解决方案,
sort
ing on
ws.title
,适用于我:

from openpyxl import Workbook

wb = Workbook()

ws1 = wb.create_sheet("B")
ws2 = wb.create_sheet("A")
ws3 = wb.create_sheet("C")
ws4 = wb.create_sheet("D")

wb._sheets.sort(key=lambda ws: ws.title)

wb.save('test_tabs.xlsx')
结果:


以下解决方案,
sort
ing on
ws.title
,对我很有效:

from openpyxl import Workbook

wb = Workbook()

ws1 = wb.create_sheet("B")
ws2 = wb.create_sheet("A")
ws3 = wb.create_sheet("C")
ws4 = wb.create_sheet("D")

wb._sheets.sort(key=lambda ws: ws.title)

wb.save('test_tabs.xlsx')
结果:


您需要提供排序键并对实际工作表进行排序。您需要提供排序键并对实际工作表进行排序。
from openpyxl import Workbook

wb = Workbook()

ws1 = wb.create_sheet("B")
ws2 = wb.create_sheet("A")
ws3 = wb.create_sheet("C")
ws4 = wb.create_sheet("D")

wb._sheets.sort(key=lambda ws: ws.title)

wb.save('test_tabs.xlsx')