2 回答

TA貢獻1843條經(jīng)驗 獲得超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條經(jīng)驗 獲得超3個贊
我正在發(fā)布一個例子
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')
添加回答
舉報