我正在尝试使用 Coldfusion 构建一个 excel xlsx 工作簿。我正在使用各种电子表格XYZ 函数来执行此操作。我遇到的一个问题是我正在运行的一些导出有大量数据,因此似乎内存成为问题。我的理解是,coldfusion 电子表格函数将所有内容保存在内存中,直到调用电子表格写入。
是否有更有效的方法来生成具有多张工作表和大量数据的工作簿?
最佳答案
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" );
这只是一个简单的示例,还包括许多其他功能,例如:addAutofilter
, addFreezePane
, addImage
, addInfo
, addPageBreaks
, writeToCsv
, ETC。
关于excel - Coldfusion - 内存高效的 xlsx/excel 生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71597711/