Javascript 量角器:xlsx模板错误无法读取属性';长度';未定义的
我使用xlsx模板生成Excel文件的基础上自定义模板,我已经创建。但我在用模板创建新excel文件时出错 下面是错误:Javascript 量角器:xlsx模板错误无法读取属性';长度';未定义的,javascript,node.js,excel,protractor,Javascript,Node.js,Excel,Protractor,我使用xlsx模板生成Excel文件的基础上自定义模板,我已经创建。但我在用模板创建新excel文件时出错 下面是错误: var XlsxTemplate = require('xlsx-template'), fs = require('fs'), path = require('path'); describe("excel", function() { it("excel file", function() {
var XlsxTemplate = require('xlsx-template'),
fs = require('fs'),
path = require('path');
describe("excel", function() {
it("excel file", function() {
console.log('inside after each...');
console.log(__dirname);
fs.readFile(path.join(__dirname, 'Template.xlsx'), function(err, data) {
var template = new XlsxTemplate(data);
var values = {
testcase: [{
id: 1,
name: "login",
status: "pass"
}, {
id: 2,
name: "logout",
status: "fail"
}, {
id: 3,
name: "searchbox",
status: "pass"
}]
}
console.log(values);
template.substitute(1, values);
console.log('excel data');
var newData = template.generate();
fs.writeFileSync('test1.xlsx', newData, 'binary');
});
})
E/launcher-无法读取未定义的属性“length”
E/launcher-TypeError:无法读取未定义的属性“length”
位于Workbook.module.exports.Workbook.loadSheet(E:\latest code\latest\test automation\node\u modules\xlsx template\lib\index.js:373:38)
位于Workbook.module.exports.Workbook.substitute(E:\latest code\latest\test automation\node\u modules\xlsx template\lib\index.js:123:26)
在E:\latest code\latest\test automation\config\index.js:117:16
在FSReqWrap.readFileAfterClose[完成时](fs.js:416:3)
代码片段:
var XlsxTemplate = require('xlsx-template'),
fs = require('fs'),
path = require('path');
describe("excel", function() {
it("excel file", function() {
console.log('inside after each...');
console.log(__dirname);
fs.readFile(path.join(__dirname, 'Template.xlsx'), function(err, data) {
var template = new XlsxTemplate(data);
var values = {
testcase: [{
id: 1,
name: "login",
status: "pass"
}, {
id: 2,
name: "logout",
status: "fail"
}, {
id: 3,
name: "searchbox",
status: "pass"
}]
}
console.log(values);
template.substitute(1, values);
console.log('excel data');
var newData = template.generate();
fs.writeFileSync('test1.xlsx', newData, 'binary');
});
})
我是否缺少xlsx模板的任何其他配置。请建议如何摆脱这个错误,因为我无法解决它
提前谢谢 我认为你的问题来自
newData
Template.generate
不返回二进制数据
在NodeJs
上,您可以使用:
var tplt = template.generate();
var binaryTplt = new Buffer(tplt, 'binary');
fs.writeFile(fileName, binaryTplt, function (err) {
if (err) return console.log(err);
console.log('XLS file saved : ' + fileName);
});
希望它能帮助你
Y.您确定
fs.readFile
找到了该文件吗?使用
模板。替换时,第一个参数是页码。
如果未找到工作表,则错误TypeError:无法读取工作簿.module.exports.Workbook.loadSheet中未定义的属性“length”
appends…
在fs.readFile
的回调中,err
有什么内容?
Y.发现我安装的xlsx模板存在问题。实际上,在xlsx template index.js文件的loadSheet方法中,我在for循环中有I
I
。我再次安装了xlsx模板,现在工作正常
谢谢大家的大力帮助:)大家好。。。谢谢你的帮助。提前感谢:)谢谢你的回复。实际上,我在
模板上遇到了这个错误。替换(1,值)
。我们还可以从错误中看到,它在Workbook.module.exports.Workbook.substitute(E:\latest code\latest\test automation\node\u modules\xlsx template\lib\index.js:123:26)处给我错误