`
awtqty_zhang
  • 浏览: 90515 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java使用POI生成EXCEL相关设置

    博客分类:
  • java
阅读更多

在平常的应用开发中,经常会出现导出文件功能(如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

 

分享到:
评论
2 楼 zi_wu_xian 2016-09-02  
顶1楼,POI生成EXCEL文件还是有格式问题滴,PageOffice调用Office的VBA接口生成文件肯定没问题。
1 楼 贝塔ZQ 2016-09-02  
操作excel文档,可以试试PageOffice插件试试,挺方便

相关推荐

Global site tag (gtag.js) - Google Analytics