2016-06-07 1 views
8

Я хочу добавить фильтр в столбец excel, который создается из массива данных с помощью js-xlsx javascript plugin, но я не нашел способа добавить фильтр в столбец таблицы ,Как добавить фильтр в excel, созданный с помощью js-xlsx plugin

Пожалуйста, помогите мне, если кто-нибудь знает, как добавить фильтр столбцов в 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

Вы можете добавить следующую строку непосредственно перед оператором return в вашей функции createSheet.

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

Вы можете расширить этот диапазон согласно вашему требованию.

+0

ok, позвольте мне попробовать. благодаря – Shree29

Смежные вопросы