2016-06-07 11 views
8

Chcę dodać filtr w kolumnie excel, która jest tworzona z tablicy danych przy użyciu wtyczki javascript js-xlsx, ale nie znalazłem żadnego sposobu na dodanie filtru do kolumny tabeli .Jak dodać filtr w programie Excel wygenerowany przy użyciu wtyczki js-xlsx

Proszę mi pomóc jeśli ktoś wie jak dodać filtr do kolumn w programie Excel

Pisałem ten kod do tworzenia arkusza obiekt

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

i moje dane w tablicy jest jak ryk

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

Nie mam żadnego doświadczenia z js-xlsx, ale czy masz możliwość wywołania kodu VBA? W takim przypadku możesz użyć metody Range.AutoFilter. – Carrosive

+0

Nie Muszę używać tylko javascript i nie mogę używać VBA – Shree29

Odpowiedz

0

Możesz dodać następujący wiersz tuż przed instrukcją return w funkcji createSheet.

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

Można rozszerzyć te zakresy zgodnie z wymaganiami.

+0

ok, pozwól mi spróbować. dzięki – Shree29

Powiązane problemy