• 导出Excel


    package net.guoguoda.admin.act.controller;
    import java.io.OutputStream;
    import java.util.Date;
    import java.util.List;
    
    import net.guoguoda.act.model.ActBase;
    import net.guoguoda.act.model.ActGGDRRegister;
    import net.guoguoda.admin.common.controller.BaseController;
    
    import org.apache.commons.lang.StringUtils;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    
    import com.jfinal.ext.route.ControllerBind;
    
    import com.wecode.framework.ext.jfinal.controller.DateRange;
    @ControllerBind(controllerKey="这里是前段访问控制器的路径")
    public class ExcelController extends BaseController{
          public void index(){
                //这里是获取数据Excel数据
                createExcel(dataList,ActBase.dao.loadById(act_id).getStr("name"));//dataList就是获取的数据
                renderNull();
    //            renderJson(JsonResult.success().toJson());
            }
    
            private void createExcel(List<ActGGDRRegister> record,String name){
            // 第一步,创建一个webbook,对应一个Excel文件
                HSSFWorkbook wb = new HSSFWorkbook();
                // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
                HSSFSheet sheet = wb.createSheet("优惠券串码信息");
                sheet.setColumnWidth(0,5000);
                sheet.setColumnWidth(1,5000);
                sheet.setColumnWidth(2,5000);
                sheet.setColumnWidth(3,5000);
                sheet.setColumnWidth(4,5000);
                sheet.setColumnWidth(5,5000);
                sheet.setColumnWidth(6,5000);
                sheet.setColumnWidth(7,5000);
                sheet.setColumnWidth(8,5000);
                // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
                HSSFRow row = sheet.createRow((int) 0);
                // 第四步,创建单元格,并设置值表头 设置表头居中
                HSSFCellStyle style = wb.createCellStyle();
                style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
    
                HSSFCell cell = row.createCell(0);
                cell.setCellValue("姓名");
                cell.setCellStyle(style);
                
                cell = row.createCell(1);
                cell.setCellValue("微信昵称");
                cell.setCellStyle(style);
                
                cell = row.createCell(2);
                cell.setCellValue("手机号");
                cell.setCellStyle(style);
                
                cell = row.createCell(3);
                cell.setCellValue("地址");
                cell.setCellStyle(style);
                
                cell = row.createCell(4);
                cell.setCellValue("参与时间");
                cell.setCellStyle(style);
                
                cell = row.createCell(5);
                cell.setCellValue("实际投票量");
                cell.setCellStyle(style);
                
                cell = row.createCell(6);
                cell.setCellValue("虚拟投票量");
                cell.setCellStyle(style);
                
                cell = row.createCell(7);
                cell.setCellValue("状态");
                cell.setCellStyle(style);
                
                cell = row.createCell(8);
                cell.setCellValue("图片提交");
                cell.setCellStyle(style);
                
                 //第五步,写入实体数据 实际应用中这些数据从数据库得到,
                for (int i = 0; i < record.size(); i++)
                {
                    ActGGDRRegister register  = record.get(i);
                    row = sheet.createRow((int) i + 1);
                    // 第四步,创建单元格,并设置值
                    row.createCell(0).setCellValue(register.getStr("name"));
                    row.createCell(1).setCellValue(register.getStr("card_no"));
                    row.createCell(2).setCellValue(register.getStr("phone"));
                    row.createCell(3).setCellValue(register.getStr("address"));               
                    row.createCell(4).setCellValue(register.getDate("create_time").toString());
                    row.createCell(5).setCellValue(register.getInt("votes"));
                    row.createCell(6).setCellValue(register.getInt("virtual_votes"));
                    row.createCell(7).setCellValue(register.getStatusDesc());
                    row.createCell(8).setCellValue(register.getPicNumber()+"("+register.getPassedPicNumber()+")");
                }
    
                try {
                    getResponse().reset(); // 非常重要
                    getResponse().setContentType("application/vnd.ms-excel");
                    String fileName = name+"-用户报名信息表"+".xls";
                    getResponse().setHeader("Content-Disposition", "attachment; filename=" + new String(fileName.getBytes(),"iso-8859-1"));
                    //创建输出流对象
                    OutputStream outStream = getResponse().getOutputStream();
                    wb.write(outStream);
                    outStream.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
    }
  • 相关阅读:
    Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(一)
    Centos7网络配置——设置固定ip
    Fiddler扩展——自定义列数据&Tunnel to 443解决办法
    Jmeter二次开发——自定义函数
    net5学习笔记---依赖注入
    Spring Cloud Alibaba系列之分布式服务组件Dubbo
    Spring5.0源码学习系列之事务管理概述
    C# 无需管理员权限提示,操作C盘文件
    WPF 屏幕点击的设备类型
    WPF Button MouseDown事件
  • 原文地址:https://www.cnblogs.com/LoveHe/p/4238833.html
Copyright © 2020-2023  润新知