POI概述 结合ssm框架实现对Excel报表的操作

1.POI概述

POI简单的来说就是用来操作报表的工具。

一般用于对数据的导入导出操作

上传数据(导入):把报表中的数据导入到数据库中

生成报表(导出):把数据库中的数据,导出并写入到报表(work,excel, pdf )存储数据

2.POI的结构说明

HSSF提供读写Microsoft Excel XLS格式档案的功能。

XSSF提供读写Microsoft Excel OOXML XLSX格式档案的功能。

HWPF提供读写Microsoft Word DOC格式档案的功能。

HSLF提供读写Microsoft PowerPoint格式档案的功能。

HDGF提供读Microsoft Visio格式档案的功能。

3.结合ssm框架实现对Excel报表操作的两种方式

1.普通导出代码案例

1.用maven项目 先导入相关需要的jar包

<dependency>
   <groupId>org.apache.poi</groupId>
   <artifactId>poi</artifactId>
   <version>3.9</version>
</dependency>
<dependency>
   <groupId>org.apache.poi</groupId>
   <artifactId>poi-ooxml</artifactId>
   <version>3.9</version>
</dependency>
<dependency>
   <groupId>org.apache.poi</groupId>
   <artifactId>poi-ooxml-schemas</artifactId>
   <version>3.9</version>
</dependency>

2.后台controller层代码

@RequestMapping(value="ex",method=RequestMethod.POST)
public void cc(Stutb stutb,HttpServletRequest request,HttpServletResponse response,String offset,String limit) throws Exception{
        //创建工作蒲
   XSSFWorkbook workbook = new XSSFWorkbook();
   //通过工作蒲创建表单,并设置表单名称
   XSSFSheet sheet = workbook.createSheet("c");
   //创建第一行 报表的第一行的下标索引是从0开始
   XSSFRow row = sheet.createRow(0);
   //定义一个string数组 里面放的是标题
   String[] a={"编号","姓名","性别","出生日期"};
   //用循环设置单元格
   for (int i = 0; i < a.length; i++) {
      XSSFCell cell = row.createCell(i);
      //循环设置单元格里的值
      cell.setCellValue(a[i]);
   }
   //从数据库拿到所有数据
   List<Stutb> stutb1 = stutbService.findStutb(new Stutb());
   for (int i = 0; i < stutb1.size(); i++) {
      //循环提取每一个对象
      Stutb stutb2=stutb1.get(i);
      //因为我们刚才已经设置了第一行 根据对应的数据设置第二行
      XSSFRow row1 = sheet.createRow(i + 1);
      //循环设置每个单元格的信息
      row1.createCell(0).setCellValue(stutb2.getmId());
      row1.createCell(0).setCellValue(stutb2.getsName());
      row1.createCell(0).setCellValue(stutb2.getsSex());
      //把时间类型转换称字符串
      row1.createCell(0).setCellValue(stutb2.getsBirth());
   }
   //下载称excel文档
   response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode("员工列表.xlsx", "UTF-8"));
   response.setHeader("Connection", "close");
   response.setHeader("Content-Type", "application/octet-stream");
   workbook.write(response.getOutputStream());



}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值