从Java到MS Excel导出数据的最佳方法

12
我曾搜索网络以获取从我的Java桌面应用程序导出数据到Excel的答案,然后我发现了Apache POI API。接着我发现JDBC也可以工作,然后我偶然发现了JExcel。它们都一样好吗?还是应该集中精力选择最好的,那个是最好的呢?
祝福您。

请在此处找到链接,了解在Excel文档中使用Apache POI和JExcel哪个更好,因为它们都是很好的库。这里 - Phani
导出多少?哪种格式?Excel支持多种格式。最简单的是使用逗号分隔文件(csv)格式。这很容易生成。然后让Excel保存为“真正的”Excel格式。 - Esben Skov Pedersen
Esben,该应用程序将允许用户生成报告。该报告通常是一个包含几个值的Excel文件。有多大?我不完全确定,但我认为它不会太大。我询问Excel的原因是因为我希望该应用程序采用设计好的模板(格式化了颜色、公司标志等),通过Java应用程序输入数据,然后打开Excel文件供用户查看和打印。我能用CSV走这条路吗? - Akinwale Agbaje
可能是JExcelAPI vs Apache POI, which is better?的重复问题。 - assylias
我也询问了关于JDBC,所以这不能算是重复。 - Akinwale Agbaje
不,在那种情况下,我认为它不适合CSV。 - Esben Skov Pedersen
4个回答

21

为什么这么复杂?

只需使用TAB分隔列,并将输出写入扩展名为".xls"的纯文本文件即可?

这样,您只需要打开生成的“.xls”文件。即使它实际上只是一个以TAB分隔的文本文件,Excel也会打开它并自动将每个制表符视为新的列。

坦白说,我不知道为什么人们仍然使用csv文件。


迄今为止最好的答案。导出的方法简单得多。 - Watercolours
6
该方法存在的问题是,用户在打开扩展名为“.xls”的文件时会收到警告,但该文件实际上并不是xls格式。 - Omri Spector
4
这确实给我带来了麻烦,不仅出现了警告,而且当用户要求对电子表格进行任何样式设置时,比如斑马线条纹行,也会出现问题。 - Marty
不,这不是XLS导出!为什么呢?告诉我,如果你需要制作一些公式,你会怎么做? - hzitoun
我们想将数据导出到Excel(或任何其他电子表格应用程序),以利用Excel在样式化表格和数据表示方面所提供的功能。您的解决方案如何为表格设置样式? - wassimans

16

我可能有点晚回答,但我猜你正确的选择应该是Jxls。我在我的模块中面临了类似的情况,我必须保留某个模板,如标志、颜色、列跨度、固定列…因此,编写单独的java代码并设计它非常繁琐。

Jxls核心是poi,语法与jstl类似,你只需要将一个bean数组列表与excel中所需的列进行映射。


0

最好的方法是在列之间使用制表符分隔,在行之间使用 \n 分隔。保存为 .xls 文件。

完美的解决方案 :) 谢谢 Zeb


6
你确定这是对问题的一个有效回答吗? - GabrielOshiro
1
是的,这不是一个好的解决方案。首先,问题在于MS Excel会提示警告,说“文件格式和扩展名不匹配。该文件可能已损坏或不安全。除非您信任其来源,否则不要打开它。”。其次,OP想要添加格式和图像,这是无法实现的。这需要创建一个真正的Excel文件或将数据写入模板电子表格 - NixonUposseen

0

如果导出的 Excel 文件很大,可能会出现内存溢出异常。(这是我以前遇到的问题,我不知道现在是否有改进。)

最简单的方法是将其导出为 CSV 文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接