- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试设置一个简单的测试项目来通过浏览器应用程序测试 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/
我正在努力实现以下目标, 假设我有字符串: ( z ) ( A ( z ) ( A ( z ) ( A ( z ) ( A ( z ) ( A ) ) ) ) ) 我想编写一个正则
给定: 1 2 3 4 5 6
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
大家好,我卡颂。 Svelte问世很久了,一直想写一篇好懂的原理分析文章,拖了这么久终于写了。 本文会围绕一张流程图和两个Demo讲解,正确的食用方式是用电脑打开本文,跟着流程图、Demo一
身份证为15位或者18位,15位的全为数字,18位的前17位为数字,最后一位为数字或者大写字母”X“。 与之匹配的正则表达式: ?
我们先来最简单的,网页的登录窗口; 不过开始之前,大家先下载jquery的插件 本人习惯用了vs2008来做网页了,先添加一个空白页 这是最简单的的做法。。。先在body里面插入 <
1、MySQL自带的压力测试工具 Mysqlslap mysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出
前言 今天大姚给大家分享一款.NET开源(MIT License)、免费、简单、实用的数据库文档(字典)生成工具,该工具支持CHM、Word、Excel、PDF、Html、XML、Markdown等
Go语言语法类似于C语言,因此熟悉C语言及其派生语言( C++、 C#、Objective-C 等)的人都会迅速熟悉这门语言。 C语言的有些语法会让代码可读性降低甚至发生歧义。Go语言在C语言的
我正在使用快速将 mkv 转换为 mp4 ffmpeg 命令 ffmpeg -i test.mkv -vcodec copy -acodec copy new.mp4 但不适用于任何 mkv 文件,当
我想计算我的工作簿中的工作表数量,然后从总数中减去特定的工作表。我错过了什么?这给了我一个对象错误: wsCount = ThisWorkbook.Sheets.Count - ThisWorkboo
我有一个 perl 文件,用于查看文件夹中是否存在 ini。如果是,它会从中读取,如果不是,它会根据我为它制作的模板创建一个。 我在 ini 部分使用 Config::Simple。 我的问题是,如果
尝试让一个 ViewController 通过标准 Cocoa 通知与另一个 ViewController 进行通信。 编写了一个简单的测试用例。在我最初的 VC 中,我将以下内容添加到 viewDi
我正在绘制高程剖面图,显示沿路径的高程增益/损失,类似于下面的: Sample Elevation Profile with hand-placed labels http://img38.image
嗨,所以我需要做的是最终让 regStart 和 regPage 根据点击事件交替可见性,我不太担心编写 JavaScript 函数,但我根本无法让我的 regPage 首先隐藏。这是我的代码。请简单
我有一个非常简单的程序来测量一个函数花费了多少时间。 #include #include #include struct Foo { void addSample(uint64_t s)
我需要为 JavaScript 制作简单的 C# BitConverter。我做了一个简单的BitConverter class BitConverter{ constructor(){} GetBy
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我是 Simple.Data 的新手。但我很难找到如何进行“分组依据”。 我想要的是非常基本的。 表格看起来像: +________+ | cards | +________+ | id |
我现在正在开发一个 JS UDF,它看起来遵循编码。 通常情况下,由于循环计数为 2,Alert Msg 会出现两次。我想要的是即使循环计数为 3,Alert Msg 也只会出现一次。任何想法都
我是一名优秀的程序员,十分优秀!