如何用 JAVA 生成有格式的 XLS

 

关键词导读:导出Excel Java导出Excel  Java导出有格式Excel

Java有什么方便的类库导出带格式的Excel吗?部分数据如下:

ORDERID CUSTOM  ORDERDATE        FREIGHT

10262   Learnthe kernel trade    1996-07-22       48.29

10263   Resources are people     1996-07-23       146.06

10264   Wuzhou trust     2007-12-18       3.67

10265   The hao 1996-07-25       55.28

10266   Upgrade the enterprise   1996-07-26       25.73

...

导出Excel样式如下:

Java一般利用Jakarta POI HSSF API组件(用于操作Excel的组件),主要部分包括Excel对象,样式和格式,还有辅助操作。但写起来太长了,代码大概要这样:

...

HSSFWorkbook workbook = new HSSFWorkbook();

HSSFSheet sheet = workbook.createSheet(title);

HSSFRow rowm = sheet.createRow(0);

HSSFCellStyle columnTopStyle=this.getColumnTopStyle(workbook);

HSSFCellStyle style=this.getStyle(workbook);

sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, (rowName.length - 1)));

cellTitle.setCellStyle(columnTopStyle);

cellTitle.setCellValue(title);

        for (int n = 0; n < columnNum; n++) {

        HSSFCell cellRowName = rowRowName.createCell(n);

  cellRowName.setCellType(HSSFCell.CELL_TYPE_STRING);

  ...

  }

...

Excel导出,用集算器结合润乾报表会简单很多,首先,报表工具设计一张模板,它底层把 POI做了完整封装,可以保持Excel格式不变。

然后,在集算器中执行报表的函数,它把报表运算过程做了封装,这样就可以自动导出各类风格、无失真的Excel比如上面问题仅需5行:

 

A

1

=file("orders.txt":"UTF-8").import@t()

2

>report_config("/raqsoftConfig.xml")

3

=report_open("ORDER.rpx")

4

=report_run(A3;A1:"ds1")

5

=report_exportXls@x(A3,"ORDER.xlsx")

其实还有很多情况用Java导出Excel不太方便,比如:分组、交叉、中国式复杂格式报表等需求,但用集算器SPL却很简单,感兴趣可以参考:自动导出Excel的利器

集算器还很容易嵌入到Java应用程序中,Java如何调用SPL脚本有使用和获得它的方法。

关于集算器安装使用、获得免费授权和相关技术资料,可以参见如何使用集算器