從後臺獲取的數據是這樣的 上帝要這樣的數組
從後臺獲取到表格數據,而後填充到excel.固然是用js來填充的。js 自己的數組具備sort()功能。可是是針對一列數據。這裏是兩列數據。腫麼辦?看看w3c教程上說 arrayObject.sort(sortby);
sortby 默認是空的。也就是按照字符串的編碼進行排序。
sortby 的做用是幹嗎?
若是想按照其餘標準進行排序,就須要提供比較函數,該函數要比較兩個值,而後返回一個用於說明這兩個值的相對順序的數字。比較函數應該具備兩個參數 a 和 b,其返回值以下:
•若 a 小於 b,在排序後的數組中 a 應該出如今 b 以前,則返回一個小於 0 的值。
•若 a 等於 b,則返回 0。
•若 a 大於 b,則返回一個大於 0 的值
這就好辦了 函數
把結果集保存爲一個js 對象數組。而後對對象數組排序。編碼
var data=[]; var result=從後臺獲取的結果集合 for(var i=0;i<result.RowCount;i++){ data[i]={n:result.getValue(i,"D"),b:result.getValue(i,"E")} } function compare(propertyName) { return function (object1, object2) { var value1 = object1[propertyName]; var value2 = object2[propertyName]; if (value2 > value1) { return -1; } else if (value2 < value1) { return 1; } else { return 0; } } } data.sort(compare("n")); 輸出excel.....
js有sort方法,選填參數。參數是一個比較函數。比較函數有兩個參數,兩個參數是用來比較了,大於,小於,等於。分別返回-1,0,1spa
這樣array就能夠調用對比函數。excel