2016-09-21 95 views
1

我使用js-xlsx库。我需要写一个excel文件。所以,当我定义了一个wb变量作为Excel工作簿,并要求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是未定义的cource。我无法看到哪里可以找到'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