2016-06-07 66 views
8

我想在使用js-xlsx javascript插件從數據數組創建的excel列上添加過濾器,但是我沒有找到任何方法將過濾器添加到表列。如何在使用js-xlsx插件生成的excel中添加過濾器

如果有誰知道如何過濾器在Excel

添加到列我寫了這個代碼來創建工作表對象

function createSheet(data, opts) { 
     console.log(data, opts); 
     var ws = {}; 
     var range = {s: {c: 10000000, r: 10000000}, e: {c: 0, r: 0}}; 
     for (var R = 0; R != data.length; ++R) { 
      for (var C = 0; C != data[R].length; ++C) { 
       if (range.s.r > R) range.s.r = R; 
       if (range.s.c > C) range.s.c = C; 
       if (range.e.r < R) range.e.r = R; 
       if (range.e.c < C) range.e.c = C; 
       var cell = {v: data[R][C]}; 
       if (cell.v == null) continue; 
       var cell_ref = XLSX.utils.encode_cell({c: C, r: R}); 

       console.log(cell_ref); 
       if (typeof cell.v === 'number') cell.t = 'n'; 
       else if (typeof cell.v === 'boolean') cell.t = 'b'; 
       else if (cell.v instanceof Date) { 
        cell.t = 'n'; 
        cell.z = XLSX.SSF._table[14]; 
        cell.v = dateNum(cell.v); 
       } 
       else cell.t = 's'; 

       ws[cell_ref] = cell; 
       console.log(cell); 
      } 
     } 
     console.log(range.s.c); 
     if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range); 
     return ws; 
    } 

和我的陣列的數據像波紋管

[["Rank","Country","Population","% of world population","Date"],["1","India","1,273,140,000","17.6%","June 24, 2015"],["2","Pakistan","190,156,000","2.62%","June 24, 2015"],["3","Nigeria","183,523,000","2.53%","July 1, 2015"],["4","Bangladesh","126,880,000","2.19%","June 24, 2015"]] 
請幫我
+1

我對js-xlsx沒有任何經驗,但是您有選擇調用VBA代碼嗎?在這種情況下,您可以使用Range.AutoFilter方法。 – Carrosive

+0

不,我只能使用JavaScript,不能使用VBA – Shree29

回答

0

您可以在createSheet函數中的return語句之前添加以下行。

ws['!autofilter']={ref:"A1:E1"}; 

您可以根據您的要求擴展這些範圍。

+0

好吧,讓我試試。謝謝 – Shree29

相關問題