gpt4 book ai didi

javascript - 设置简单测试项目的问题 - Exceljs 和 Browserify

转载 作者:行者123 更新时间:2023-11-30 15:14:38 35 4
gpt4 key购买 nike

我正在尝试设置一个简单的测试项目来通过浏览器应用程序测试 ExcelJS,但我无法让 Browserify 正常工作。

我使用适当的 require 调用将我的代码打包到一个包文件中,结果包在加载页面时抛出以下错误:

未捕获的类型错误:无法读取未定义的属性“原型(prototype)”

这个错误似乎是在 fs.ReadStream 方法上引发的?

这是我的代码:

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(){
var workbook = generateTestFile();
console.log(workbook);
};
</script>
</body>
</html>

app.js(bundle.js 的基础)

'use strict';

var Excel = require('exceljs');

var isBold = function(dataRow){
return dataRow.name === "Jeff";
};

var getRowColor = function(dataRow){
return dataRow.color;
};

var getCellColor = function(dataRow, cell){
return (dataRow.name === 'John' && cell.value === 0)? 'orange' : dataRow.color;
};

var getFont = function(isBold, color){
return {
name: 'Arial Black',
color: color,
family: 2,
size: 14,
bold: isBold
};
};

var getTestHeader = function(){
return [
{key: "id", header: "Id"},
{key: "name", header: "Name", width: 32},
{key: "color", header: "Color", width: 10}
];
};

var getTestData = function(){
return [
{
id: 0,
name: "John",
color: "green"
},
{
id: 1,
name: "Rehan",
color: "blue"
},
{
id: 2,
name: "Jeff",
color: "yellow"
}
];
};

var generateTestFile = function(){
var workbook = new Excel.Workbook();
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){
console.log(row);
var isBold = isBold(row);
var rowColor = getRowcolor(row);
row.eachCell(function(cell, colNumber){
var cellColor = getCellColor(row, cell);
console.log(cell);
});
});

return workbook;
};

我如何让它工作?我真正想做的就是测试 excelJS。我不关心解决方案是什么,只要我能验证该库是否有效,我就会很高兴。

最佳答案

你应该浏览器 exceljs/dist/es5/exceljs.browser 而不是 exceljs

var Excel = require('exceljs/dist/es5/exceljs.browser');

既然你要浏览你的 app.js 你应该让你的函数(变量)在全局范围(窗口)中可见

global.generateTestFile = function generateTestFile(){
// ...
};

您不能同时声明名称为isBold 的变量和调用函数表达式isBold,因为您的var 关键字将声明一个当前范围内的变量 isBold 并且您的函数将不可用(参见 var )。所以把它注释掉,因为它没有在你的代码中使用:

//var isBold = isBold(row);

此外,getRowcolor 中有一个拼写错误。修复它:

var rowColor = getRowСolor(row);

这是为您准备的 gulpfile.js:

var gulp = require('gulp');
var source = require('vinyl-source-stream');
var browserify = require('browserify');
//var uglify = require('gulp-uglify');
//var buffer = require('vinyl-buffer');

gulp.task('default', function() {
return browserify('app.js')
.bundle()
.pipe(source('bundle.js'))
//.pipe(buffer())
//.pipe(uglify())
.pipe(gulp.dest('.'));
});

您还可以浏览器化 exceljs/dist/es5/exceljs.browser.js 本身并在您的应用中使用它。

关于javascript - 设置简单测试项目的问题 - Exceljs 和 Browserify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44656422/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com