2017-02-08 17 views
0

Я использую API Js-xlsx для экспорта данных в файл .xlsx. Я попытался написать пример кода с помощью AngularJs, и я не смог его достичь. Он бросает Workbook is not defined. Я ссылаюсь на wiki, но я не мог его найти. Пожалуйста, помогите мне, кто-нибудь знает, как записать список данных в файл .xlsx с помощью Js-xlsx.Рабочая книга не определена в js-xlsx

Фрагмент кода,

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.2/xlsx.core.min.js"></script> 

... 

<button ng-click="ExportData()">Export<button> 

AngularJs Контроллер

$scope.ExportData= function(){ 

var workbook=new Workbook();// throws not defined 
$scope.dataArrayForExportCsv=[ {userName:data.userName, age:data.age} ]; 
workbook = sheet_from_array_of_arrays($scope.dataArrayForExportCsv); 
XLSX.writeFile(workbook, 'sample.xlsx'); 
} 

ответ

0

Я был в состоянии решить это в виду следующее link .Если вам нужно стилизации. xlsx, вы должны превратиться в свой народный проект под названием xlsx-style. Когда я пишу это сообщение, ветка не сливается с xlsx master. Так что вам нужно скачать необходимые файлы JS с помощью npm.

Импорт jszip.js и xlsx.min.js файлов в ваш HTML-файл и выполните свою кодировку. Вы можете использовать Cell object, чтобы добавить стили ячеек.

Образец кода стилей фрагмента кода.

function sheet_from_array_of_arrays(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 = {}; 

       //Set Header col styles 
       if(R <= 0){ 
        cell = { 
        v: data[R][C], 
        s : { 
          fill : { 
            fgColor : { 
             theme : 8, 
             tint : 0.3999755851924192, 
             rgb : '7DCEA0' 
            } 
              }, 
              font : { 
               color : { 
                rgb : "FFFFFF" 
               }, 
               bold : true, 
               sz : "14" 
              } 
             } 
        }; 
    } else if (data[R][C] == "SUCCESSFUL") { 
      //You can check any conditions on text and add styles you wanted. 
    }else{ 

     //Set other cells styles 
     cell = { 
              v : data[R][C], 
              s : { 
               fill : { 
                fgColor : { 
                 theme : 8, 
                 tint : 0.3999755851924192, 
                 rgb : '08CB26' 
                } 
               }, 
               font : { 
                color : { 
                 rgb : "FFFFFF" 
                }, 
                bold : true 
               }, 
               border : { 
                bottom : { 
                 style : "thin", 
                 color : { 
                  theme : 5, 
                  tint : "-0.3", 
                  rgb: "E8E5E4" 
                 } 
                } 
               } 
              } 
             }; 

     } 

       if(cell.v == null) continue; 
       var cell_ref = XLSX.utils.encode_cell({c:C,r:R}); 

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

ширина Набор Col

     var wscols = [ { 
          wch : 40 
         }, { 
          wch : 40 
         }, { 
          wch : 20 
         }, { 
          wch : 20 
         }, { 
          wch : 40 
         }, { 
          wch : 40 
         }, { 
          wch : 20 
         }, { 
          wch : 20 
         }, { 
          wch : 20 
         }, { 
          wch : 20 
         }, { 
          wch : 20 
         }, { 
          wch : 40 
         }, { 
          wch : 40 
         } ]; 
     ws = sheet_from_array_of_arrays(myRestData); 
     ws['!cols'] = wscols; 
     ... 
Смежные вопросы