• POI导出excel的简单demo


    目前使用过两种导出excel的方式,一种是如题所示的使用POI的方式进行数据的导出,这种方式一般只有在处理比较多的数据或者说需要导出的excel表格中有图片之类的需要特殊处理的文件的时候使用;还有一种方式是直接在HTML文件中加上.xls的后缀,直接导出excel,一般比较适用于数据较少且没有特殊文件的情况下;再其次就是各种插件,不过适用插件进行导出的时候导出的图片一般无法展示;

    使用POI导出excel:

    package com.controller;
    
    import java.io.OutputStream;
    import java.util.ArrayList;
    import java.util.List;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFFont;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import com.pojo.Person;
    
    
    @Controller
    @RequestMapping("/exportController")
    public class ExportController {
           @RequestMapping("/export")
    	public void export(HttpServletResponse response){
                    //适用List集合造一些数据作为要导出的数据
                    List<Person> list = new ArrayList<Person>();
    		list.add(new Person("亚索", "男", "800"));
    		list.add(new Person("亚索1", "男", "801"));
    		list.add(new Person("亚索2", "男", "802"));
                    //调用方法创建HSSFWorkbook工作簿对象
    		HSSFWorkbook wb = ExportController.export_text(list);
                    try {
                            //定义导出文件的名称,看不懂的同学可以先行了解一下文件下载
    			String fileName = new String("personRelation.xls".getBytes("UTF-8"),"ISO-8859-1");
    			response.setContentType("application/vnd.ms-excel");
    			response.setHeader("Content-Disposition","attachment; filename="+fileName);
    			OutputStream os = response.getOutputStream();
    
                            //将工作薄写入到输出流中
    			wb.write(os);
    			os.close();
    		} catch (Exception e) {
    			e.getStackTrace();
    		}
            }  
    
            //创建HSSFWorkbook工作薄对象
            public static HSSFWorkbook export_text(List<Person> list){
                     try {
                            //创建工作薄对象
    			HSSFWorkbook wb = new HSSFWorkbook();
                            //创建标题行样式
    			HSSFCellStyle headStyle = headStyle(wb);
                            //创建内容行样式
    			HSSFCellStyle contentStyle = contentStyle(wb);
    			
                            //创建表
    			HSSFSheet sheet_1 =  wb.createSheet("人员信息");
                            //设置表的默认列宽
    			sheet_1.setDefaultColumnWidth(30);
    			
                            //创建标题行
    			HSSFRow headRow = sheet_1.createRow(0);
    			HSSFCell head_cell_1 = headRow.createCell(0);           //创建标题行第一列
    			head_cell_1.setCellValue("姓名");                        //第一列内容
    			head_cell_1.setCellStyle(headStyle);                    //将标题行样式添加
    			
    			HSSFCell head_cell_2 = headRow.createCell(1);
    			head_cell_2.setCellValue("性别");
    			head_cell_2.setCellStyle(headStyle);
    			
    			HSSFCell head_cell_3 = headRow.createCell(2);
    			head_cell_3.setCellValue("年龄");
    			head_cell_3.setCellStyle(headStyle);
    			
                            //为内容行添加数据和样式
    			for (int i = 1; i <= list.size(); i++) {
    				HSSFRow contentRow = sheet_1.createRow(i);
    				HSSFCell content_cell_1 = contentRow.createCell(0);
    				content_cell_1.setCellValue(list.get(i-1).getName());
    				content_cell_1.setCellStyle(contentStyle);
    				
    				HSSFCell content_cell_2 = contentRow.createCell(1);
    				content_cell_2.setCellValue(list.get(i-1).getSex());
    				content_cell_2.setCellStyle(contentStyle);
    				
    				HSSFCell content_cell_3 = contentRow.createCell(2);
    				content_cell_3.setCellValue(list.get(i-1).getAge());
    				content_cell_3.setCellStyle(contentStyle);
    			}
    			return wb;
    		} catch (Exception e) {
    			e.getStackTrace();
    		}
    		
    		return null;
            }
    
    
            /**
    	 * 创建标题行样式
    	 * @param wb
    	 * @return
    	 */
    	public static HSSFCellStyle headStyle(HSSFWorkbook wb){
                    HSSFCellStyle headStyle = wb.createCellStyle();                       //创建样式对象
    		HSSFFont headFont = wb.createFont();                                  //创建字体
    		headFont.setFontName("微软雅黑");
    		headFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
    		headFont.setColor(HSSFFont.COLOR_RED);
    		
    		headStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
    		headStyle.setFont(headFont);
    		return headStyle;
            }
    
            /**
    	 * 创建内容行样式
    	 * @param wb
    	 * @return
    	 */
    	public static HSSFCellStyle contentStyle(HSSFWorkbook wb){
                    HSSFCellStyle contentStyle = wb.createCellStyle();
    		HSSFFont contentFont = wb.createFont();
    		contentFont.setFontName("微软雅黑");
    		contentFont.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
    		contentFont.setColor(HSSFFont.COLOR_NORMAL);
    		
    		contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
    		contentStyle.setFont(contentFont);
    		return contentStyle;
            }
    
    }    
    

      

  • 相关阅读:
    SQL exist
    Mac 加密软件
    appcon 图标打包
    启动页面
    获取第三方的授权
    实现一个简单但是好看的滑动栏
    实现聊天界面的代码
    简单的设置圆形按钮
    自己搭建服务端前透析
    A1056Mice and Rice (25分)
  • 原文地址:https://www.cnblogs.com/qiankun-site/p/5851055.html
Copyright © 2020-2023  润新知