poi生成excel文件

一, poi生成excel文件

  1)引入依赖

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
    <!-- 报表 -->
    <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>

二,调用

@Controller
public class PoiController {
    
    @Autowired
    private LogMapper logMapper;
    
    @RequestMapping("getpoi")
    public void getpoi(HttpServletResponse response) {
        //获取登录日志表
        List<Log> logList=logMapper.getloglist();
        //创建对象 SXSSFWorkbook用于处理大量数据问题,使用内存达到效果,再结合分页查询,一个表达到指定容量就开启下张表;
        //SXSSFWorkbook sxssfWorkbook = new SXSSFWorkbook();
        HSSFWorkbook workbook = new HSSFWorkbook();
        //创建表
        HSSFSheet sheet = workbook.createSheet("登录日志表");
        //创建第一行,填充名称
        HSSFRow row = sheet.createRow(0);
        
        //获取第一行每个单元格进行填充
        HSSFCell createCell0 = row.createCell(0);
        createCell0.setCellValue("id");
        
        HSSFCell createCell1 = row.createCell(1);
        createCell1.setCellValue("用户IP地址");
        
        HSSFCell createCell2 = row.createCell(2);
        createCell2.setCellValue("用户登录时间");
        
        HSSFCell createCell3 = row.createCell(3);
        createCell3.setCellValue("用户名");
        
        HSSFCell createCell4 = row.createCell(4);
        createCell4.setCellValue("前端登录/后端登录");
        HSSFRow rowi = null;
        HSSFCell createCell =null;
        for (int i = 0; i < logList.size(); i++) {
            //创建第二行,填充内容
             rowi = sheet.createRow(i+1);
             
            createCell = rowi.createCell(0);//获取第一个单元格
            createCell.setCellValue(logList.get(i).getiId());
            
            createCell = rowi.createCell(1);//获取第二个单元格
            createCell.setCellValue(logList.get(i).getiIp());
            
            createCell = rowi.createCell(2);//获取第三个单元格
            createCell.setCellValue(logList.get(i).getiDate());
            
            createCell = rowi.createCell(3);//获取第四个单元格
            createCell.setCellValue(logList.get(i).getuName());
            
            createCell = rowi.createCell(4);//获取第五个单元格
            createCell.setCellValue("1".equals(logList.get(i).getiType())?"前端登录":"后端登录");
                
        }
        //写出
        //这个流从response获取,再配置响应头信息就可以实现下载;
        OutputStream out=null;
        try {
            out = new FileOutputStream(new File("F:/test","test.xls"));
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        }
        
        try {
            
            workbook.write(out);
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

三,效果展示

 

 

原文地址:https://www.cnblogs.com/hi-feng/p/8017136.html