繁体   English   中英

Coldfusion项目中的ExcelJS

[英]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.jsdist exceljs.min.js下可用。

编辑:另外,我不同意亚当在这里。 ExcelJS 确实可以用于在浏览器端生成 excelsheets,并且非常适合您提到的用例。 我们使用的方法之一是使用我们拥有的数据动态构建 ExcelJS.Workbook,将工作簿写入缓冲区,然后使用 -

new Blob([buffer], { type: buffer.type })

然后使用ObjectURLs下载它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM