2017-04-24 117 views
1

我有一個計算,使用xlsxwriter創建一個Excel電子表格來顯示結果。知道結果後對錶格排序會很有用。排序表xlsxwriter python

一個解決辦法是在Python中創建一個單獨的數據結構和排序的數據結構,並使用後XLSX,但它不是很優雅,需要大量的數據類型處理。

我不能找到一種方法,在XLSX模塊中的結構進行排序。 任何人都可以幫助該模塊的內部數據結構?在寫入磁盤之前,可以對它進行排序。 另一個解決方案是重新打開文件,對其進行排序並再次關閉它?

import xlsxwriter 
    workbook=xlsxwriter("Trial.xlsx") 
    worksheet=workbook.add_worksheet("first") 
    worksheet.write_number(0,1,2) 
    worksheet.write_number(0,2,1) 

    ...worksheet.sort 
+2

你笑uld構建Python數據結構並在將它們寫入工作簿之前進行排序。 –

回答

3

你應該把它寫入工作簿之前處理您的數據,下面的例子會寫不排序一列數字:

import xlsxwriter 

workbook = xlsxwriter.Workbook("Trial.xlsx") 
worksheet = workbook.add_worksheet("first") 

data = [5, 2, 7, 3, 8, 1] 

for rowy, value in enumerate(data): 
    worksheet.write_number(rowy, 0, value)  # use column 0 

workbook.close() 

但是,如果你第一次對數據進行排序如下:

import xlsxwriter 

workbook = xlsxwriter.Workbook("Trial.xlsx") 
worksheet = workbook.add_worksheet("first") 

data = sorted([5, 2, 7, 3, 8, 1]) 

for rowy, value in enumerate(data): 
    worksheet.write_number(rowy, 0, value)  # use column 0 

workbook.close()  

你會得到這樣的:

Sorted data in a single column

4

任何人可以與模塊的內部數據結構幫助嗎?在寫入磁盤之前,可以對它進行排序。

我是該模塊的作者,簡短的回答是,這不能或不應該這樣做。

它可以在運行時在Excel工作表中的數據進行排序,但不屬於文件規範的一部分,所以它不能與XlsxWriter來完成。

一個解決方案是在python中創建一個單獨的數據結構,然後對數據結構進行排序,並在稍後使用xlsx,但它不是很優雅,需要大量的數據類型處理。

這聽起來像一個合理的解決方案給我。

+0

查看工作表數據的內部結構後,我會說可以完成,但我已經創建了自己的數據結構,所以我不打擾。但是,它的可讀性和評論性很好。 – Okapi575