0
我想導出格式化的Excel文件使用ExcelJS和writeFile方法根本無法正常工作。我得到以下異常,當我調用該函數:ExcelJS寫入文件不工作:未捕獲TypeError:fs.createWriteStream不是一個函數
Uncaught TypeError: fs.createWriteStream is not a function
我的JavaScript使用browserify.js捆綁。下面是我的源代碼:
的index.html
<!DOCTYPE html>
<head>
<title>Test Excel JS</title>
<meta charset="utf-8">
<meta name="description" content="">
<link rel="stylesheet" href="app.css">
</head>
<body>
<div>
<label>Test</label>
<button onclick="test()">Test this Stuff and Check your console log</button>
</div>
<script src="bundle.js"></script>
<script>
var test = function(){
writeFile();
};
</script>
</body>
</html>
app.js(由browserify捆綁到bundle.js)
'use strict';
global.Excel = require('../node_modules/exceljs/dist/es5/exceljs.browser');
global.isRowBold = function(excelRow){
return excelRow.getCell('name').value === "Jeff";
};
global.getRowColor = function(excelRow){
return excelRow.getCell('color').value;
};
global.getCellColor = function(excelRow, cell){
return (excelRow.getCell('name').value === 'John' && cell.value === 0)? 'orange' : excelRow.getCell('color').value;
};
global.getFont = function(isBold, color){
return {
name: 'Arial Black',
color: color,
family: 2,
size: 14,
bold: isBold
};
};
global.getTestHeader = function(){
return [
{key: "id", header: "Id"},
{key: "name", header: "Name", width: 32},
{key: "color", header: "Color", width: 10}
];
};
global.getTestData = function(){
return [
{
id: 0,
name: "John",
color: "green"
},
{
id: 1,
name: "Rehan",
color: "blue"
},
{
id: 2,
name: "Jeff",
color: "yellow"
}
];
};
global.generateTestFile = function(){
var workbook = new Excel.Workbook();
workbook.creator = "Generated";
workbook.lastModifiedBy = "Generated";
workbook.created = new Date();
workbook.modified = new Date();
var worksheet = workbook.addWorksheet('Sheet 1');
//Set Column Headers
worksheet.columns = getTestHeader();
//Add Rows
var testData = getTestData();
var length = testData.length;
for(var i = 0; i < length; i++){
worksheet.addRow(testData[i]);
}
//Format Rows
worksheet.eachRow(function(row, rowNumber){
var isBold = isRowBold(row);
row.eachCell(function(cell, colNumber){
var cellColor = getCellColor(row, cell);
cell.font = getFont(isBold, cellColor);
});
});
//workbook.commit();
return workbook;
};
global.writeFile = function(){
var workbook = generateTestFile();
workbook.xlsx.writeFile('./output/newtestfile.xlsx')
.then(function() {
console.log('Done Writing file');
});
};
您無法瀏覽依賴於服務器端功能的模塊(如讀取或寫入文件系統)。 – robertklep