Apache poi操作excel实现导出

本文介绍了如何通过Easypoi库在Java中操作HSSF和XSSF格式的Microsoft Excel文件,包括创建工作簿、工作表、单元格样式,以及合并单元格和设置列宽。重点展示了创建表格标题、数据行和生成Excel文件的过程。
摘要由CSDN通过智能技术生成

1. 首先引入依赖

 <dependency>
    <groupId>cn.afterturn</groupId>
      <artifactId>easypoi-base</artifactId>
      <version>3.0.1</version>
    </dependency>
     <dependency>
         <groupId>cn.afterturn</groupId>
         <artifactId>easypoi-web</artifactId>
         <version>3.0.1</version>
     </dependency>
     <dependency>
         <groupId>cn.afterturn</groupId>
         <artifactId>easypoi-annotation</artifactId>
     <version>3.0.1</version>
 </dependency>

2. 文档API 介绍

HSSF - 提供读写Microsoft Excel格式档案的功能;
XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。
HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
HDGF - 提供读写Microsoft Visio格式档案的功能。

        //  HSSFWorkbook   为excel 文档对象
		HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
		
		//  HSSFSheet   excel 中的一个表单对象,支持配置表名
        HSSFSheet sheet = hssfWorkbook.createSheet();
        
       //  HSSFCellStyle  配置单元格样式对象
        HSSFCellStyle cellStyle = hssfWorkbook.createCellStyle();
        cellStyle.setAlignment(HorizontalAlignment.CENTER);
        
        // 表示 1,2,3 列全部设置样式为居中
        sheet.setDefaultColumnStyle(0,cellStyle);
        sheet.setDefaultColumnStyle(1,cellStyle);
        sheet.setDefaultColumnStyle(2,cellStyle);
        // 设置  列宽
        sheet.setColumnWidth(0,20*256);
        sheet.setColumnWidth(1,20*256);
        sheet.setColumnWidth(2,20*256);
        
        // 合并单元    0, 0, 0, 2    表示   excel 表第一行到地二行 ,从第一列到第三列 所在区间的单元格合并为一个
        CellRangeAddress cra=new CellRangeAddress(0, 1, 0, 2);
        sheet.addMergedRegion(cra);
        
		// 创建第一行  setCellValue 方法重载支持表单元格格式
        HSSFRow row0 = sheet.createRow(0);
        
        // 设置行高
         row0.setHeightInPoints(30L);
         
        row0.createCell(0).setCellValue("统计报表");
        // 创建第二行
        HSSFRow titlerRow = sheet.createRow(1);
        titlerRow.createCell(0).setCellValue("姓名");
        titlerRow.createCell(1).setCellValue("性别");
        titlerRow.createCell(2).setCellValue("年龄");
       // 创建第三行
        HSSFRow dataRow = sheet.createRow( 2);
        dataRow.createCell(0).setCellValue("张三");
        dataRow.createCell(1).setCellValue("男");
        dataRow.createCell(2).setCellValue(1);
		//返回相应头数据
        ServletOutputStream outputStream = response.getOutputStream();
        String filename = "test";
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        filename = URLEncoder.encode(filename,"UTF-8").replaceAll("\\+", "%20");
        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + filename + ".xlsx");
        hssfWorkbook.write(outputStream);
        hssfWorkbook.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值