【问题标题】:Java: How to export data (db, query or table contents) to Excel?Java:如何将数据(数据库、查询或表格内容)导出到 Excel?
【发布时间】:2012-01-11 14:13:40
【问题描述】:

我想知道如何将表格的内容或查询中的数据导出到 Excel 文件。还有哪个文件扩展名更适合导出到 xls 或 csv?

提前致谢。


编辑:我希望用户能够通过按下按钮将 JTable 的内容(包含查询结果)导出到 Excel 兼容文件。

我不知道最好的方法是什么?我找到了各种方法,但我不确定要遵循哪一种。是否可以生成一个 JasperReport 然后将相同的数据导出到 excel 中?


Edit2:好的,所以我决定像你们大多数人建议的那样导出到 .csv。我的最后一个问题是哪个更好用,opecsv 还是javacsv?两者看起来都很容易使用。

谢谢!

【问题讨论】:

    标签: java export-to-excel export-to-csv


    【解决方案1】:

    导出到 csv 更容易 - 并且可以根据数据在紧要关头手动完成(每个新行都是一个新行,单元格值用逗号分隔) - 有可用的开源库(http ://opencsv.sourceforge.net/),将结果集复制到输出的代码应该很简单

    【讨论】:

      【解决方案2】:

      如果您绝对需要 Excel,请使用 Apache POI 库。

      【讨论】:

      • 我正在做这个应用程序作为作业,教授说它必须能够导出到 Excel。
      【解决方案3】:

      您必须创建文本文件(csv)并写入数据库的结果。

      PrintWriter out
         = new PrintWriter(new BufferedWriter(new FileWriter("foo.csv")));
      
      while(rs.next())
      {
        out.println(String.format("%s,%s,%s",rs.getString(1),rs.getString(2),rs.getString(3));
      }
      

      【讨论】:

      • 我同意,这是一个完全有效的解决方案,并利用了 csv 格式的简单性!
      【解决方案4】:

      除了已经给出的答案,我想说我更喜欢 CSV。

      CSV 与应用程序无关,您以后可以使用任何其他语言/程序(Python、R、Java、Excel 等)来操作数据。

      【讨论】:

        【解决方案5】:

        我在 jXLS 上取得了很好的成功: http://jxls.sourceforge.net/

        这使您可以在本机 Excel 模板中使用类似 JSP 的标签以及所有格式等。您可以通过 Map 结构(类似于请求范围变量)从 Java API 调用传递数据以替换到该 Excel 模板中。

        如果您只想要格式化的 Excel 输出,这是 JasperReports 的一个很好的轻量级替代品。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-04-08
          • 1970-01-01
          • 2013-02-19
          • 2015-03-19
          • 2023-03-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多