我有一个Java应用程序,其中报表以表格的形式动态生成。我需要在网页上有一个按钮,单击它会将表导出到Excel。该表必须由用户在客户端保存。我该如何实现此功能? Apache POI API会有用吗?
答案 0 :(得分:1)
过去我成功使用了 POI ,但它有它的怪癖。我使用它的最好方法是在服务器中放置一个包含所有格式,颜色等的“模板”文件,并在导出时将其与数据一起复制并填充。
但是,如果您的数据是一个简单的以列为单位的表,并且您不必担心格式和数据类型,为什么不以纯文本格式导出数据? (CSV格式)这可以通过Excel打开,在导出数据时,在提高内存使用速度方面效率会更高。
生成也会简单得多,你可以使用自己的POJO生成器,这将更容易测试。
仅当用户需要专用日期格式或区分整数/文本单元格时才使用POI。或者,如果您需要动态计算的单元格(使用公式)如果不需要,您可以将所有内容导出为字符串,Excel将在打开csv文件时找到它。
答案 1 :(得分:1)
与此同时,还有一个客户端库(XLSX.js)可用。当您使用datatables之类的东西进行客户端过滤和排序时,可能会很方便。
答案 2 :(得分:0)
我的一些同事使用POI api来输出非常大的报告。我想现在它是最好的一个。
答案 3 :(得分:0)
另外考虑编写一个HTML格式的表格(Excel也可以读取它,包括比CSV更好的格式化)。
并且,查看JExcelAPI,我认为它比POI更容易使用。