代码之家  ›  专栏  ›  技术社区  ›  pgras

直接将Excel数据写入输出流(限制内存消耗)

  •  4
  • pgras  · 技术社区  · 14 年前

    我在寻找一个简单的解决方案来输出大的Excel文件。输入数据来自数据库,我想将Excel文件直接输出到磁盘,以尽可能降低内存消耗。我看过ApachePoi或JXLS之类的东西,但没有找到解决问题的方法。

    作为附加信息,我需要为2007年以前的Excel生成.xls文件,而不是新的.xlsx XML格式。我也知道我可以生成csv文件,但我更喜欢生成普通的excel文件。

    有什么想法吗?

    我意识到我的问题不太清楚,我真的希望能够写Excel文件而不必将整个文件保存在内存中…

    3 回复  |  直到 14 年前
        1
  •  6
  •   Community skywinder    7 年前

    唯一有效的方法是 性格 -基于csv或xml(xlsx)格式,因为它们可以写入输出 逐字逐句地 这样,每个saldo在内存中每次只能有一行。这个 二元的 -必须首先填充基于XLS的格式 完全地 在内存中,在它可以写入输出之前,这当然会占用大量记录的内存。

    我建议对此使用csv,因为它可能比xml更高效,而且您的优势是任何像样的数据库服务器都具有导出功能,因此您不需要 program / include Java中的新事物。我不知道你用的是哪种数据库,但是如果它是例如mysql,那么你可以使用 LOAD DATA INFILE 为此。

        2
  •  2
  •   Pierre    14 年前

    不知道如何生成真正的XSL文件。但是你可以直接写一个 HTML 文件或包含 OPenDocument 电子表格(我想MSEXCEL以后可以阅读这个格式)

        3
  •  2
  •   Brian Agnew    14 年前

    JExcelAPI 通常被推荐为比ApachePOI更节省内存的替代方案。