2016-09-21 24 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