• POI导出Excel并下载


    首先在pom.xml添加jar包:

    <!-- 导出excel -->
        <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>

     导出Excel工具类:

    public class ExcelUtil {
        @SuppressWarnings("deprecation")
        public static void excelUtil(HttpServletResponse response,String[] headers,
                List<InsuranceDetailsVO> InsuranceDetailsVOs) 
                throws IOException{
            //创建HSSFWorkbook对象(excel的文档对象)  
            HSSFWorkbook wb = new HSSFWorkbook();  
            //建立新的sheet对象(excel的表单)  
            HSSFSheet sheet = wb.createSheet("CSRExport"); 
            
            //设置列宽
            sheet.setColumnWidth(0, 20*256);
            sheet.setColumnWidth(1, 25*256);
            sheet.setColumnWidth(2, 24*256);
            .....//生成一个样式
            HSSFCellStyle style1 = wb.createCellStyle();
            
            //字体设置
            HSSFFont font = wb.createFont();    
            font.setFontName("仿宋_GB2312");    
            font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示    
            font.setFontHeightInPoints((short) 12);
            
    //        style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);
            style1.setAlignment(CellStyle.ALIGN_CENTER);//水平居中  
            style1.setVerticalAlignment(CellStyle.VERTICAL_CENTER);//垂直居中
            style1.setFont(font);
            style1.setWrapText(true);
            
            HSSFRow row1=sheet.createRow(0);  
            
            for (short i = 0; i < headers.length; i++) {
                row1.createCell(i).setCellValue(headers[i]);
                row1.getCell(i).setCellStyle(style1);
            }
            for (int i = 0; i < InsuranceDetailsVOs.size(); i++) {
                HSSFRow row=sheet.createRow(i+1);
                ....这里是给每一行的每一列填充值
            }
            
            String fileName = "default.xls";
            try {
                fileName = "LD"+DateFormatUtils.getSystemDateByYYYYMMDD()+".xls";
            } catch (ParseException e1) {
                e1.printStackTrace();
            }
            
            //输出流
            OutputStream os=null;
            try {
                 response.reset();
                 response.setCharacterEncoding("UTF-8");
                 response.setHeader("Content-Disposition", "attachment; filename="+fileName);
    //             response.setContentType("application/vnd.ms-excel;charset=utf-8"); 
                 response.setContentType("application/octet-stream;charset=UTF-8");  //流输出
                 os = new BufferedOutputStream(response.getOutputStream());
                 wb.write(os);
            } catch (Exception e) {
                e.printStackTrace();
            } finally{
                if(os!=null){
                    try {
                        os.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            
        }
        
    }
  • 相关阅读:
    LNMP分离部署
    PXE
    Mysql
    07.23 课堂随笔 学习了相关的标签
    [Prodinner项目]学习分享_第三部分_Service层(业务逻辑层)
    Beginning Windows Azure Development Guide
    5分钟浅析简单工厂模式
    [Prodinner项目]学习分享_第一部分_Model层
    [Prodinner项目]学习分享_第四部分(完结篇)_Controller层(控制器)
    C# Windows service 开发笔录
  • 原文地址:https://www.cnblogs.com/ldbangel/p/6230412.html
Copyright © 2020-2023  润新知