问题描述::
最近在工作中,实现这样一个功能,将界面中table中的数据传输到excel中,并保存到指定位置。
问题分析::
将table中的数据导出到excel中,就需要用程序来控制excel中的数据格式,换句话来说,用Java程序来定义一个报表,然后将table中的数据传输到报表中,现的问题是:
Java程序如何设置一个报表呢?excel的表格有行有列,如何控制行列之间的关系,如何定义表头,如何输入数据等等。如下图的报表形式:
Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。Java使用poi组件导出excel报表,能导出excel报表的还可以使用jxl组件,但jxl想对于poi功能有限,jxl应该不能载excel插入浮动层图片,poi能很好的实现输出excel各种功能,介绍poi导出excel功能实现案例,算比较常用的功能实现以及导出excel需要注意的地方,采用的是poi-3.8-20120326.jar,poi-ooxml-3.8-20120326.jar,poi-scratchpad-3.8-20120326.jar
JAVA语言操作excel的api主流有两种方式:
1、POI Apache它是用来操作Office所有的软件excel/word/ppt/..。而且支持所有版本。
2、JXL 它是用来操作excel 2003以下版本,2007以上版本不支持。
jar包下载:
官网:http://poi.apache.org/download.html
百度云:http://pan.baidu.com/s/1bpp0C9p
密码:p45i
包名称说明
- HSSF提供读写Microsoft Excel XLS格式档案的功能。
- XSSF提供读写Microsoft Excel OOXML XLSX格式档案的功能。
- HWPF提供读写Microsoft Word DOC格式档案的功能。
- HSLF提供读写Microsoft PowerPoint格式档案的功能。
- HDGF提供读Microsoft Visio格式档案的功能。
- HPBF提供读Microsoft Publisher格式档案的功能。
- HSMF提供读Microsoft Outlook格式档案的功能。
Java poi和excel对应的关系:
Javapoi常用的方法:Java中POI操作Excel常用方法 JAVA POI的使用
InputStream in = new FileInputStream(new File("XXX.xlsx"));
// 创建工作簿
XSSFWorkbook workBook = new XSSFWorkbook(inputStream);
// 创建sheet
XSSFSheet sheet = workBook.createSheet(sheetName);
// 创建行
XSSFRow row = sheet.createRow(rowIndex);
// 创建单元格,设置单元格格式为String类型
XSSFCell cell = row.createCell(j, CellType.STRING);
// 设置行高
sheet.getRow(rowIndex).setHeight((short)number);
// 设置列宽
sheet.setColumnWidth(columnIndex, int width);
// 设置单元格值
cell.setCellValue(cellInfo[k][j]);
// 设置单元格样式
cell.setCellStyle(style);
//***********************************************
// 根据sheetName获取工作簿中对应的sheet表
XSSFSheet sheet = workBook.getSheet(sheetName);
// 获取行
XSSFRow row = sheet.getRow(rowIndex);
// 获取单元格
XSSFCell cell = row.getCell(columnIndex);
**注:**1、设置列宽需要在sheet级别上操作!
有了上面的基础,创建工作簿::