簡體   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