2016-06-07 39 views
8

Tôi muốn thêm bộ lọc trên cột excel được tạo từ mảng dữ liệu bằng cách sử dụng js-xlsx javascript plugin nhưng tôi không tìm thấy cách nào để thêm bộ lọc vào cột bảng .Cách thêm bộ lọc vào excel được tạo bằng cách sử dụng js-xlsx plugin

Xin hãy giúp tôi nếu có ai biết làm thế nào để thêm bộ lọc để cột trong excel

Tôi đã viết mã này để tạo bảng tính đối tượng

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

và dữ liệu của tôi trong mảng là như dưới đây

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

Tôi không có bất kỳ trải nghiệm nào với js-xlsx, nhưng bạn có tùy chọn gọi mã VBA không? Trong trường hợp này, bạn có thể sử dụng phương thức Range.AutoFilter. – Carrosive

+0

Tôi không phải sử dụng chỉ javascript và không thể sử dụng VBA – Shree29

Trả lời

0

Bạn có thể thêm dòng sau ngay trước câu lệnh trả về trong hàm createSheet của bạn.

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

Bạn có thể mở rộng phạm vi này theo yêu cầu của mình.

+0

ok, hãy để tôi thử. cảm ơn – Shree29

Các vấn đề liên quan