在平常的应用开发中,经常会出现导出文件功能(如PDF,EXCEL等),本人在最近的项目中也使用到相关功能,使用的是POI技术,一些基本设置记录如下,方便以后查找,闲事少说,直接上代码:
1、设置打印区域:
//HSSFWorkbook wb;
wb.setPrintArea(0, // 工作薄 下标0开始
0, // 起始列 下标0开始
6, // 终止列 下标0开始
0, // 起始行 下标0开始
100 // 终止行 下标0开始
);
2、获得sheet
HSSFSheet sheet = wb.getSheetAt(0);//获得第一个sheet
HSSFSheet sheet = wb.cloneSheet(0);//克隆第一个sheet,但如果在sheet中存在的图片不能克隆
wb.createSheet();//创建一个新的sheet
3、修改sheet的名称
wb.setSheetName(int sheetIx, String name);
4、获得sheet中指定单元格的样式
HSSFCellStyle detail12 = sheet.getRow(3).getCell(0).getCellStyle();//获得第4行、第一列单元格的样式
5、合并单元格式
sheet.addMergedRegion(new Region(int rowFrom, short colFrom, int rowTo, short colTo));
/*
参数说明:rowFrom 开始行,colFrom 开始列,rowTo 结束行, colTo结束列
*/
6、设置sheet分页符(在打印时,指定每页打印的区域)
sheet.setRowBreak(rowNum);//设置打印分页符
说明:sheet中,行、列的起始值都为0;
最后附上从Excel模板获得需要导出的EXCEL文件的输入流方法。
public InputStream getExcelISForAs(List<Object> list) throws Exception {
InputStream excelStream = null;
FileInputStream fis = new FileInputStream(templatePath + "/template.xls");
HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(fis));
fis.close();
generateExcelForAs(list, wb);//填充EXCEL内容方法
ByteArrayOutputStream out = new ByteArrayOutputStream();
HSSFWorkbook hssWb = (HSSFWorkbook) wb;
hssWb.write(out);
excelStream = new ByteArrayInputStream(out.toByteArray());
out.close();
return excelStream;
}
POI的在线API:http://www.ostools.net/apidocs/apidoc?api=apache-POI
常用在线API索引(开源中国-在线工具):http://www.ostools.net/apidocs