2014-01-14 42 views
5

我有创造才能的一些下面对工作表中的脚本:脚本完成可能在xlsxwriter中更改工作表顺序?

WorkSheet (holds data) -> ChartSheet using WorkSheet 

后,我留下订购这样的工作表:

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

是它可以重新排列脚本末尾的工作表(即在workbook.close()之前),以便在最终的.xlsx文件中获得以下工作表顺序?

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

回答

8

只是有点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() 
+0

完美无缺的工作,谢谢 –

3

这是可以做到的,但它是不可取的。

每个工作表都有一个内部索引,Excel使用它来跟踪不同工作簿对象的关系。

排列工作表可能会在一些简单的情况下工作,但对于更复杂的工作簿可能会导致问题。

+0

有用的,我有一个暗示,表单的添加顺序在整个.xlsx结构中具有重要意义。 –