2016-06-07 13 views
8

Voglio aggiungere un filtro alla colonna excel che viene creata dalla matrice di dati utilizzando il plugin js-xlsx javascript ma non ho trovato alcun modo per aggiungere il filtro alla colonna della tabella .Come aggiungere un filtro in excel generato utilizzando il plug-in js-xlsx

Please help me se qualcuno sa come aggiungere filtri alle colonne in Excel

Ho scritto questo codice per creare l'oggetto foglio di lavoro

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; 
    } 

e miei dati in array è come muggito

[["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

Non ho esperienza con js-xlsx, ma hai la possibilità di chiamare il codice VBA? In questo caso è possibile utilizzare il metodo Range.AutoFilter. – Carrosive

+0

No Devo usare solo javascript e non posso usare VBA – Shree29

risposta

0

È possibile aggiungere la riga seguente poco prima dell'istruzione return nella funzione createSheet.

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

È possibile estendere questi intervalli in base alle proprie esigenze.

+0

ok, fammi provare. Grazie – Shree29

Problemi correlati