2016-09-21 12 views
1

Я пользуюсь библиотекой js-xlsx. Мне нужно написать файл excel. Поэтому, когда я определил wb переменную как первенствовать книги и попросил js-xlsx написать его же файлОшибка при использовании библиотеки - javascript

XLSX.writeFile(wb, 'out.xls'); 

Я получаю ошибку в браузере консоли:

require.js:900 TypeError: Cannot read property 'writeFileSync' of undefined 

XLSX.writeFile превращается в js-xlsx/dist/xlsx.js row 1340

_fs = require('f'+'s'); 

И когда я приостановил его для отладки, _fs не определено, из-за курса. Я не вижу, где можно найти библиотеки «f» или «s». Пожалуйста, помогите мне понять это.

+0

Вы используете его в браузере? – Maxx

+0

@Maxx да, он работает с обозревателем – Mae

+1

Нет, это не так. Вы не можете писать файл в браузере, ваш код должен запускаться под nodejs – Maxx

ответ

1

попробовать с помощью XLSX.write - WriteFile функция специфична для nodejs


  • XLSX.write(wb, filename) запись в двоичную строку (-> браузер)

  • XLSX.writeFile(wb, filename)nodeJS функции


/* XLSX.write(wb, 'out.xls'); */ 

/* bookType can be 'xlsx' or 'xlsm' or 'xlsb' */ 
var wopts = { bookType:'xlsx', bookSST:false, type:'binary' }; 

var wbout = XLSX.write(workbook,wopts); 

function s2ab(s) { 
    var buf = new ArrayBuffer(s.length); 
    var view = new Uint8Array(buf); 
    for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; 
    return buf; 
} 

/* the saveAs call downloads a file on the local machine */ 
saveAs(new Blob([s2ab(wbout)],{type:""}), "test.xlsx") 

https://github.com/SheetJS/js-xlsx#user-content-writing-workbooks