programing

xlsxwriter에서 워크시트 순서를 변경할 수 있습니까?

telebox 2023. 8. 25. 23:31
반응형

xlsxwriter에서 워크시트 순서를 변경할 수 있습니까?

다음 워크시트 쌍을 순서대로 만드는 스크립트가 있습니다.

WorkSheet (holds data) -> ChartSheet using WorkSheet

스크립트가 완료되면 워크시트가 다음과 같이 정렬됩니다.

Data1, Chart1, Data2, Chart2, Data3, Chart3, ...

스크립트가 끝날 때 워크시트를 다시 주문할 수 있습니까(예: 이전)?workbook.close()) 최종 .xlsx 파일에서 다음 워크시트 순서를 구하시겠습니까?

Chart1, Chart2, Chart3,...,ChartN, Data1, Data2, Data3,...

그냥 정렬workbook.worksheets_objs목록:

import xlsxwriter


workbook = xlsxwriter.Workbook('test.xlsx')

sheet_names = ['Data1', 'Chart1', 'Data2', 'Chart2', 'Data3', 'Chart3']
for sheet_name in sheet_names:
    workbook.add_worksheet(sheet_name)

# sort sheets based on name
workbook.worksheets_objs.sort(key=lambda x: x.name)
workbook.close()

저는 XlsxWriter의 저자입니다.그것을 하는 것은 가능하지만 그것은 권장되지 않습니다.

각 워크시트에는 여러 워크시트 개체의 관계를 추적하는 데 Excel에서 사용하는 내부 인덱스가 있습니다.

워크시트를 정렬하는 것은 간단한 경우에는 효과가 있을 수 있지만 복잡한 워크북의 경우에는 문제가 발생할 수 있습니다.

원하는 순서대로 더미 시트를 생성하고 실제 데이터를 임의의 순서로 채울 수 있습니다.

import pandas as pd
dummy = pd.DataFrame()
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
# Here go the dummy sheets in the order you want
dummy.to_excel(writer, sheet_name='Chart1')
dummy.to_excel(writer, sheet_name='Chart2')
dummy.to_excel(writer, sheet_name='Data1')
dummy.to_excel(writer, sheet_name='Data2')
# Then you fill-in the placeholders in whatever order:
data1.to_excel(writer, sheet_name='Data1')
chart1.to_excel(writer, sheet_name='Chart1')
data2.to_excel(writer, sheet_name='Data2')
chart2.to_excel(writer, sheet_name='Chart2')
writer.close()

언급URL : https://stackoverflow.com/questions/21118823/possible-to-alter-worksheet-order-in-xlsxwriter

반응형