2 回答
TA贡献1843条经验 获得超7个赞
您可以move_sheet(sheet, offset=0)为此使用方法。这里的偏移量计算为“当前工作表索引”+偏移量。复制工作表会将工作表添加到工作簿的最后一个。所以你需要给负值才能将工作表移动到索引 0。
from openpyxl import load_workbook
wb = load_workbook("text.xlsx")
ws = wb.copy_worksheet(wb["sample"])
ws.title = "NewNameForCopiedSheet"
wb.move_sheet("NewNameForCopiedSheet", -(len(wb.sheetnames)-1))
TA贡献1841条经验 获得超3个赞
我正在发布一个例子
wb._sheets 是你用来控制标签/表格顺序的东西。获取要重新排列的工作表位置并修改具有新位置的工作表列表。
from openpyxl import Workbook
wb=Workbook()
# wb.create_sheet("Sheet")
wb.create_sheet("Sheet2")
wb.create_sheet("Sheet3")
wb.create_sheet("SheetA")
wb.create_sheet("ASheet")
wb.create_sheet("blank")
wb.save('book_original.xlsx')
blank_sheet_position = wb.worksheets.index(wb['blank'']) #get position of new sheet
blank_sheet_new_position = 0 #position where you want to move
sheets = wb._sheets.copy()
sheets.insert(blan_sheet_new_position, sheets.pop(blank_sheet_position))) #modifying the sheets list
wb._sheets = sheets
wb.save('book_myorder.xlsx')
添加回答
举报