[英]Problems setting up simple test project - Exceljs and Browserify
[英]ExcelJS in coldfusion Project
要求是从 ui-grid 导出一个 excel 文件(*.xlsx),并带有一些格式。 我可以使用 angularjs、ui-grid 和 js-xlsx 导出 excel,但是我无法使用 js-xlsx 格式化 excel 单元格(例如粗体、文本颜色)。
我找到了 Exceljs,它看起来符合我的要求。 困难在于它可以作为 npm 包使用,而我正在使用的服务器没有安装 node/npm。 或者,我无法找到相同的下载/cdn。 所以我已经在本地系统上安装了该软件包并从 node_modules 复制了文件夹 exceljs 并尝试了以下操作:
<script src="dist/exceljs.js"></script>
<script>
var workbook = new Excel.Workbook();
console.log(workbook);
</script>
它抛出错误“未捕获的引用错误:未定义 Excel”。
我猜它是因为它应该作为“Excel”对象可用的节点模块包含在内。
var Excel = require('exceljs');
有什么方法可以在不需要('')的情况下包含和创建它。
如果无法完成,我将不胜感激任何其他解决方案/建议。
在代码中快速搜索后,我找到了这个。 这个库正在使用文件读/写,所以你无法在浏览器中使用它。 另一方面,Excel 文件是 xml 的 zip 存档,因此如果没有服务器端帮助或第三部分服务,您将永远无法实现您想要的。
您想要的是 exceljs 的捆绑版本,它全局公开独立的 ExcelJS 对象(通过window
)。 这也正是您所拥有的,除了您使用无效名称引用它的事实。
var workbook = new ExcelJS.Workbook();
此外,由于您并没有真正在您的 javascript 项目中使用模块捆绑器,而不是通过npm install
捆绑分发exceljs
并从node_modules
提取它,更好的方法是从他们的版本列表中下载并构建自己投射——
$ cd exceljs
$ npm install
$ npm run build
接下来你可以得到exceljs.js
和它的缩小版exceljs.min.js
在dist
exceljs.min.js
下可用。
编辑:另外,我不同意亚当在这里。 ExcelJS 确实可以用于在浏览器端生成 excelsheets,并且非常适合您提到的用例。 我们使用的方法之一是使用我们拥有的数据动态构建 ExcelJS.Workbook,将工作簿写入缓冲区,然后使用 -
new Blob([buffer], { type: buffer.type })
然后使用ObjectURLs下载它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.