Coldfusion - 内存高效的 xlsx/excel 生成

Dun*_*mer 1 coldfusion excel export xlsx cfspreadsheet

我正在尝试使用 Coldfusion 构建 Excel xlsx 工作簿。我使用各种电子表格XYZ 函数来执行此操作。我遇到的一个问题是,我正在运行的一些导出有大量数据,因此内存似乎成为问题。我的理解是,coldfusion 电子表格函数将所有内容保留在内存中,直到调用 SpreadsheetWrite 为止。

是否有更有效的方法来生成具有多个工作表和大量数据的工作簿?

小智 6

https://github.com/cfsimplicity/spreadsheet-cfml

Spreadsheet CFML - 用于在 CFML 中处理电子表格的独立库 它比内置 cfspredsheet 标签具有更多功能。最值得注意的是,为了您的目的newStreamingXlsx,它可以保持大型 Excel 工作表的内存效率。

spreadsheet = New spreadsheet();
workbook = spreadsheet.newStreamingXlsx( streamingWindowSize=10 );

spreadsheet.addRows( workbook, data ); //Data can come from a query/array

spreadsheet.download( workbook,"report.xlsx" );
Run Code Online (Sandbox Code Playgroud)

这只是一个简单的例子,还包括许多其他功能,例如:addAutofilteraddFreezePaneaddImageaddInfoaddPageBreakswriteToCsv等。