精华内容
下载资源
问答
  • java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。
  • * 这是一个通用的方法,利用了JAVA的反射机制,可以将放置在JAVA集合中并且符号一定条件的数据以EXCEL 的形式输出到指定IO设备上 * * @param title * 表格标题名 * @param headers * 表格属性列名数组 ...
  • 利用POI实现Java导出Excel表格,为了实现以后通用,做成了一个利用Java的反射机制做成的万金油式工具类,只需要给工具类传入固定的几个参数(映射字段的map集合,数据集合,实体类的Claas等),就可以实现导出Excel,该...
  • 概述:Java poi导入导出EXCEL工具类(兼容各版本) 一、功能说明 允许同时导入或导出多个sheet,同一sheet可同时存在多个数据块,按数据块划分处理数据。 二、配置文件示例及详细说明 1、导入xml配置示例如下(见...
  • java的poi的导入工具类,只需要传入两个arrayList,一个是execl的标题,一个是ececl的数据,就可以直接导出到execl里面,支持最新的execl,全新封装的,让每一个人都会使用poi导出execl!
  • java使用poi导出excel工具类

    千次阅读 2020-08-05 12:13:53
    java使用poi导出excel,使用的包是 compile group: 'org.apache.poi', name: 'poi', version: '3.15' 工具类代码: import java.io.OutputStream; import java.lang.reflect.Field; import java.lang....

    java使用poi导出excel,使用的包是

    	compile group: 'org.apache.poi', name: 'poi', version: '3.15'
    

    工具类代码:

    
    
    import java.io.OutputStream;
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.Iterator;
    import java.util.List;
    
    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.HSSFRichTextString;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.hssf.util.HSSFColor;
    
    /**
     * 
     * @author vn0gv3u
     *
     * @param <T>
     */
    public class ExportExcelUtil<T> {
    
      /**
       * 这是一个通用的方法,利用了JAVA的反射机制,可以将放置在JAVA集合中并且符号一定条件的数据以EXCEL 的形式输出到指定IO设备上
       * 
       * @param title 表格标题名
       * @param dataset 需要显示的数据集合,集合中一定要放置符合javabean风格的类的对象。
       * @param out 与输出设备关联的流对象,可以将EXCEL文档导出到本地文件或者网络中
       * @param pattern 如果有时间数据,设定输出格式。默认为"yyy-MM-dd"
       */
      @SuppressWarnings("deprecation")
      public void exportExcel(String title, List<T> dataset, OutputStream out, String pattern)
          throws Exception {
        // 声明一个工作薄
        HSSFWorkbook workbook = new HSSFWorkbook();
        // 生成一个表格
        HSSFSheet sheet = workbook.createSheet(title);
        // 设置表格默认列宽度为20个字节
        sheet.setDefaultColumnWidth((short) 20);
        // 生成一个样式
        HSSFCellStyle style = workbook.createCellStyle();
        // 设置这些样式
        style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
        style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
        style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
        style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
        style.setBorderRight(HSSFCellStyle.BORDER_THIN);
        style.setBorderTop(HSSFCellStyle.BORDER_THIN);
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        // 生成一个字体
        HSSFFont font = workbook.createFont();
        font.setColor(HSSFColor.VIOLET.index);
        font.setFontHeightInPoints((short) 12);
        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        // 把字体应用到当前的样式
        style.setFont(font);
    
        // 生成并设置另一个样式
        HSSFCellStyle style2 = workbook.createCellStyle();
        style2.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index);
        style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
        style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);
        style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);
        style2.setBorderRight(HSSFCellStyle.BORDER_THIN);
        style2.setBorderTop(HSSFCellStyle.BORDER_THIN);
        style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
        // 生成另一个字体
        HSSFFont font2 = workbook.createFont();
        font2.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
        // 把字体应用到当前的样式
        style2.setFont(font2);
    
        if (dataset == null || dataset.size() == 0)
          return;
        T tempT = dataset.get(0);
        Field[] heads = tempT.getClass().getDeclaredFields();
        List<String> headList = new ArrayList<>();
        // 获取字段注解的表头
        for (int i = 0; i < heads.length; i++) {
          String name = heads[i].getName();
          headList.add(name);
        }
        // 产生表格标题行
        HSSFRow row = sheet.createRow(0);
        for (int i = 0; i < headList.size(); i++) {
          HSSFCell cell = row.createCell(i);
          cell.setCellStyle(style);
          HSSFRichTextString text = new HSSFRichTextString(headList.get(i));
          cell.setCellValue(text);
    
        }
        // 遍历集合数据,产生数据行
        Iterator<T> it = dataset.iterator();
        int index = 0;
        while (it.hasNext()) {
          index++;
          row = sheet.createRow(index);
          T t = (T) it.next();
          Field[] fields = t.getClass().getDeclaredFields();
          List<Field> fieldsList = new ArrayList<>();
          for (Field field : fields) {
            fieldsList.add(field);
          }
          for (Field field : fieldsList) {
            HSSFCell cell = row.createCell(fieldsList.indexOf(field));
            cell.setCellStyle(style2);
            String fieldName = field.getName();
            String getMethodName =
                "get" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
            Class tCls = t.getClass();
            Method getMethod = tCls.getMethod(getMethodName, new Class[] {});
            Object value = getMethod.invoke(t, new Object[] {});
            // 判断值的类型后进行强制类型转换
            String textValue = null;
            if (value == null) {
              cell.setCellValue("");
            }
            if (value instanceof Integer) {
              int intValue = (Integer) value;
              cell.setCellValue(intValue);
            } else if (value instanceof Float) {
              float fValue = (Float) value;
              cell.setCellValue(fValue);
            } else if (value instanceof Double) {
              double dValue = (Double) value;
              cell.setCellValue(dValue);
            } else if (value instanceof Long) {
              long longValue = (Long) value;
              cell.setCellValue(longValue);
            } else if (value instanceof Date) {
              Date date = (Date) value;
              SimpleDateFormat sdf = new SimpleDateFormat(pattern);
              textValue = sdf.format(date);
              cell.setCellValue(textValue);
            } else {
              // 其它数据类型都当作字符串简单处理
              textValue = value == null ? "" : value.toString();
              cell.setCellValue(textValue);
            }
          }
        }
        workbook.write(out);
      }
    
    
    }
    

    controller调用

     @GetMapping("/test/export/excel/by/day")
      @ResponseBody
      public String exportExcelByTime(HttpServletResponse response) {
    
        String title = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
        response.reset();
        response.setHeader("Content-disposition", "attachment; filename=" + title + ".xls");
        response.setContentType("application/x-xls");
        //查询到list数据
        List<?> list = new ArrayList<>();
        if (list == null || list.size() < 1) {
          return "没有查到数据";
        }
    
        try {
          // 输出Excel文件
          OutputStream out = response.getOutputStream();
          ExportExcelUtil util = new ExportExcelUtil();
          util.exportExcel(title, list, out, "yyyy-MM-dd");
          out.close();
        } catch (Exception e) {
          e.printStackTrace();
        }
    
        return "导出成功";
      }

     

    展开全文
  • javaPOI导出excel工具类

    2018-12-26 13:45:32
    生成Workbook方法 ... * @return XSSFWorkbook */ public static XSSFWorkbook getWorkBook(String[] title, String[][] str) { // 第一步,创建一个HSSFWorkbook,对应一个Excel文件 ...

    生成Workbook方法

    /**
     *
     * @param title 标题
     * @param str 内容
     * @return XSSFWorkbook类
     */
    public static XSSFWorkbook getWorkBook(String[] title, String[][] str) {
        // 第一步,创建一个HSSFWorkbook,对应一个Excel文件
        XSSFWorkbook wb = new XSSFWorkbook();
        // 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet
        XSSFSheet xssfSheet = wb.createSheet();
        // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制
        XSSFRow firstRow = xssfSheet.createRow(0);
        // 第四步,创建单元格,并设置值表头 设置表头居中
        XSSFCellStyle style = wb.createCellStyle();
        // 创建一个居中格式
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        //创建标题
        for (int i = 0; i < title.length; i++) {
            XSSFCell cell = firstRow.createCell(i);
            cell.setCellValue(title[i]);
            cell.setCellStyle(style);
        }
        //创建内容
        XSSFRow row;
        for (int i = 0; i < str.length; i++) {
            row = xssfSheet.createRow(i + 1);
            for (int j = 0; j < str[i].length; j++) {
                //将内容按顺序赋给对应的列对象
                row.createCell(j).setCellValue(str[i][j]);
            }
        }
        return wb;
    }
    • 注这里XSSFWorkbook生成的是xlsx格式,如果需要xls需要用HSSFWorkbook类

    使用web工程测试

    public void export(HttpServletResponse response,List<Person> list) throws UnsupportedEncodingException {
        //初始化标题
        String[] titles = {"姓名","年龄","性别","身份证"};
        //封装数据
        String[][] arr = new String[list.size()][titles.length];
        for (int i = 0; i < list.size(); i++) {
            Person person = list.get(i);
            arr[i][0] = person.getName();
            arr[i][1] = person.getAge();
            arr[i][2] = person.getGender();
            arr[i][3] = person.getIDCard();
        }
        //导出excel
        XSSFWorkbook workBook = ExcelUtil.getWorkBook(titles, arr);
        //设置响应头
        String fileName = new String("ceshi.xlsx".getBytes(), "ISO8859-1");
        response.reset();
        response.setContentType("application/msexcel");
        response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
        //输出
        try (OutputStream outputStream = response.getOutputStream()) {
            workBook.write(outputStream);
            outputStream.flush();
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    展开全文
  • poi excel导出工具类

    2017-12-04 10:15:51
    基于poi开发的excel导出工具类,一种无样式优化导出,一种自适应cell宽度导出
  • 在实际的项目中,经常会有导出到Excel的功能,前阶段研究了下poi导出Excel,自己整理了一个导出的工具类,下面把代码贴出来,大家相互学习学习!工具类import java.io.OutputStream;import java.net.URLEncoder;...

    在实际的项目中,经常会有导出到Excel的功能,前阶段研究了下poi导出Excel,自己整理了一个导出的工具类,下面把代码贴出来,大家相互学习学习!

    工具类

    import java.io.OutputStream;

    import java.net.URLEncoder;

    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;

    /**

    * 导出Excel工具类

    * @author goodboyloveyy

    *

    */

    public abstract class ExcelUtils {

    /**

    * 生成excel的通用模版

    * @param response

    *            响应,设置生成的文件类型,文件头编码方式和文件名,以及输出

    * @param firstLine

    *            标题字符串数组 String[]

    * @param sheetName

    *            工作表名

    * @param fileName

    *            文件名

    */

    @SuppressWarnings("deprecation")

    public void excel(HttpServletResponse response, String[] firstLine,

    String sheetName, String fileName) throws Exception{

    HSSFWorkbook wb = new HSSFWorkbook();// excel文件,一个excel文件包含多个表

    HSSFSheet sheet = wb.createSheet();// 表,一个表包含多个行

    wb.setSheetName(0, sheetName, HSSFWorkbook.ENCODING_UTF_16);  //设置sheet中文编码

    // 设置字体等样式

    HSSFFont font = wb.createFont();

    font.setFontHeightInPoints((short) 12);

    font.setFontName("Courier New");

    HSSFCellStyle style = wb.createCellStyle();

    style.setFont(font);

    style.setWrapText(true);

    style.setAlignment(HSSFCellStyle.ALIGN_LEFT);

    style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

    HSSFRow row;// 行,一行包括多个单元格

    HSSFCell cell;// 单元格

    row = sheet.createRow(0);//由HSSFSheet生成行

    row.setHeightInPoints((float) 15);//设置行高

    // 生成首行标题

    for (short j = 0; j < firstLine.length; j++) {

    cell = row.createCell(j);//由行生成单元格

    cell.setCellStyle(style);//设置单元格样式

    cell.setEncoding(HSSFCell.ENCODING_UTF_16);//设置cell中文编码;

    cell.setCellValue(firstLine[j]);

    sheet.setColumnWidth(j, (short) (5000));//设置列宽

    }

    fillData(sheet, style);// 该方法由具体调用时进行实现

    // 导出

    OutputStream out = null;

    response.setContentType("application/x-msdownload");// 设置生成的文件类型

    response.setHeader("Content-Disposition", "p_w_upload;filename="

    + URLEncoder.encode(fileName, "UTF-8"));

    out = response.getOutputStream();//取得输出流

    wb.write(out);//写入Excel

    out.close();

    }

    /**

    * 该方法由生成具体的表格时去实现(方法体内进行填充数据)

    *

    * @param sheet

    * @param style

    */

    public abstract void fillData(HSSFSheet sheet, HSSFCellStyle style);

    }[/code]调用工具类进行导出操作

    [code="java"]public String exportCardTypeList(){

    User user = (User) ActionContext.getContext().getSession().get("user");

    if(user==null){

    return LOGIN;

    }else{

    String[] cloumnName = {"卡类型编号","卡类型名称"};  //导出的列名

    String sheetName = "产品信息";   //sheet的名称

    String fileName = "cardTypelist.xls";   //文件名

    HttpServletResponse response = ServletActionContext.getResponse();

    try {

    cardTypeList = cardManageService.loadCardType();//查询出数据

    ExcelUtils excelUtil = new ExcelUtils(){  //生成工具类实例,并实现填充数据的抽象方法

    @SuppressWarnings("deprecation")

    @Override

    public void fillData(HSSFSheet sheet, HSSFCellStyle style) {

    SSFRow row;//行,一行包括多个单元格

    HSSFCell cell;//单元格

    if (null != cardTypeList || cardTypeList.size() > 0) {

    for (int k = 0; k < cardTypeList.size(); k++) {

    row = sheet.createRow(k+1);

    row.setHeightInPoints((float) 15);

    CardType cardType = cardTypeList.get(k);

    cell = row.createCell((short)0);

    cell.setCellStyle(style);

    cell.setEncoding(HSSFCell.ENCODING_UTF_16);

    cell.setCellValue(SystemUtil.isNull(String.valueOf(cardType.getTypeId())));//产品编号

    cell = row.createCell((short)1);

    cell.setCellStyle(style);

    cell.setEncoding(HSSFCell.ENCODING_UTF_16);

    cell.setCellValue(SystemUtil.isNull(cardType.getName()));//产品名称

    }

    }

    }

    };

    excelUtil.excel(response, cloumnName, sheetName, fileName);

    return null;

    } catch (Exception e) {

    logger.error("exportCardTypeList error!", e);

    return ERROR;

    }

    }

    }

    展开全文
  • POI导出Excel工具类,自动设置标题 列名 文件名,可插入图片,合并单元格
  • 基于poiexcel导入导出封装,poi版本 <groupId>org.apache.poi <artifactId>poi <version>4.1.0 <groupId>org.apache.poi <artifactId>poi-ooxml <version>4.1.0 </dependency>
  • Java poi导出excel封装的工具类

    千次阅读 2018-09-07 18:21:49
    废话不多说,直接上代码了,还是补一句,就是:数据放到实体类里边,然后放到map集合中,再把map放到List集合中,最后调用工具类,即可导出。 1. maven依赖 &lt;dependency&gt; &lt;groupId&...

    废话不多说,直接上代码了,还是补一句,就是:数据放到实体类里边,然后放到map集合中,再把map放到List集合中,最后调用工具类,即可导出。

    1. maven依赖

    		<dependency>
    		    <groupId>org.apache.poi</groupId>
    		    <artifactId>poi</artifactId>
    		    <version>3.16</version>
    		</dependency>
    		<dependency>
    		    <groupId>org.apache.poi</groupId>
    		    <artifactId>poi-ooxml</artifactId>
    		    <version>3.16</version>
                <exclusions>
                    <exclusion>
                        <artifactId>xmlbeans</artifactId>
                        <groupId>org.apache.xmlbeans</groupId>
                    </exclusion>
                </exclusions>
            </dependency>

    注意:如果使用的是springboot记得exclusions掉xmlbeans,因为可能会有冲突

    2. excel导出工具类

    package //TODO
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    
    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;
    
    public class ExcelUtils {
    
    	private static final int PAGE_NUM = 65500;
    		/**
    		 * 非空判断
    		 * @param obj
    		 * @return
    		 */
    	 public static boolean isEmptyOrNull(Object obj){
    	    	if(obj == null){
    	    		return true;
    	    	}
    	    	if(obj instanceof Map){
    	    		return ((Map) obj).isEmpty();
    	    	}else if(obj instanceof List){
    	    		return ((List) obj).isEmpty();
    	    	}
    	    	return obj.toString().isEmpty();
    	  }
    	
    	
    	/**
    	 * 获取工作簿
    	 * @param list
    	 * @param columnMap
    	 * @return
    	 * @throws Exception
    	 */
    	public static HSSFWorkbook getHSSFWorkbook(List<Map<String,Object>> list, Map<String, String> columnMap){
    		
    		HSSFWorkbook wb = new HSSFWorkbook();
    		//对集合进行非空判断
    		if(isEmptyOrNull(list) || isEmptyOrNull(columnMap)){
    			wb.createSheet();
    			return wb;
    		}
    		
    		int pageNum = PAGE_NUM;//每页数量
    		int size = list.size();//数据数量
    		int pages = (size % pageNum > 0) ? (size / pageNum + 1) : (size / pageNum);//导出页数
    		
    		HSSFCellStyle cs = null;//单元格样式
    		HSSFSheet sheet = null;//页面
    		HSSFFont font = wb.createFont();//字体
    		
    		font.setFontHeightInPoints((short) 11);//设置字号 
    		cs = wb.createCellStyle();
    		
    		cs.setFont(font);
    		cs.setFillPattern(HSSFCellStyle.FINE_DOTS);
    		
    		Set<String> keySet = columnMap.keySet();
    		HSSFRow row = null;//单元格行
    		Object columnvalue = null;
    		String columnTitle = null;
    		Map<String,Object> dataMap = null;
    		
    		for (int i = 0; i < pages; i++) {
    			sheet = wb.createSheet();
    			wb.setSheetName(i, (String.valueOf((i + 1))));
    			row = sheet.createRow(0);
    			for(String keyColumn : keySet){
    				columnTitle = columnMap.get(keyColumn);
    				createStringCell(row, (short) row.getLastCellNum() == -1 ? 0 : (short) row.getLastCellNum(), columnTitle, cs);
    			}
    			for(int j = 0; j < size; j++){
    				dataMap = list.get(j);
    				row = sheet.createRow(j + 1 - (pageNum * i));
    				for(String keyColumn : keySet){
    					columnvalue = dataMap.get(keyColumn);
    					createStringCell(row, (short) row.getLastCellNum() == -1 ? 0 : (short) row.getLastCellNum(), columnvalue, cs);
    				}
    			}
    		}
    		return wb;
    		
    		
    	}
    	
    	/**
    	 * 创建单元格
    	 * @param row
    	 * @param index
    	 * @param value
    	 * @param cs
    	 */
    	private static void createStringCell(HSSFRow row, short index, Object value, HSSFCellStyle cs) {
    		HSSFCell cell = row.createCell(index);
    		cell.setCellType(HSSFCell.CELL_TYPE_STRING);
    		cs.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
    		cs.setAlignment(HSSFCellStyle.ALIGN_CENTER);
    		if(!isEmptyOrNull(value) && value instanceof Date){
    			value = doDate2String((Date)value);
    		}
    		cell.setCellValue(null2Empty(value));
    	}
    	
    	
    	/**
    	 * 将日期转化为String
    	 * @param confirmDate
    	 * @param patten
    	 * @return
    	 */
    	public static String doDate2String(Date confirmDate, String... patten) {
    		if(confirmDate == null){
    			return "";
    		}
    		SimpleDateFormat sdf = null;
    		if(patten == null || patten.length == 0){
    			sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    		}else{
    			sdf = new SimpleDateFormat(patten[0]);
    		}
    		return sdf.format(new Date(confirmDate.getTime()));
    	}
    	
    	/**
    	 * 将null转化为Empty
    	 * @param areaId
    	 * @return
    	 */
    	public static String null2Empty(Object areaId) {
    		return areaId == null ? "" : areaId.toString();
    	}
    }

    注意:关键方法:getHSSFWorkbook

    3. controller方法:

    	@RequestMapping(value="download")
    	public void downloadExcel(HttpServletRequest request,HttpServletResponse response,IsEntity isEntity){
    	
    		StringBuffer sbBuffer = new StringBuffer();
    		sbBuffer.append("这是文件名");
    		sbBuffer.append(CommonUtil.dateToString(new Date()));
    		sbBuffer.append(".xls");
    		String fileName =  sbBuffer.toString();
    		
    	    //excel 写入数据 service层 TODO 这个自己注入进来
    	    HSSFWorkbook wb = this.offlineService.downloadExcel(isEntity);
    	    
    	    this.setResponseHeader(response, fileName);
    	    try {
                OutputStream os = response.getOutputStream();
    	        wb.write(os);
    	        os.flush();
    	        os.close();
    		} catch (IOException e) {
    			//TODO 处理异常
    		}
    	}
    
    
        //发送响应流方法
        private void setResponseHeader(HttpServletResponse response, String fileName) {
            try {
                try {
                    fileName = new String(fileName.getBytes(),"ISO8859-1");
                } catch (UnsupportedEncodingException e) {
                    //TODO 处理异常
                }
                response.setContentType("application/octet-stream;charset=ISO8859-1");
                response.setHeader("Content-Disposition", "attachment;filename="+ fileName);
                response.addHeader("Pargam", "no-cache");
                response.addHeader("Cache-Control", "no-cache");
            } catch (Exception ex) {
                //TODO 处理异常
            }
        }

    3. 调用service的方法

    	/**
    	 * 导出excel
    	 * @param offlineQueryEntity
    	 */
    	public HSSFWorkbook downloadExcel(IsEntity isEntity) {
    		try {
                //查询数据
    		    List<IsEntity > query = this.query(IsEntity );
    			//标题
    			Map<String, String> column = new TreeMap<String, String>();
    			column.put("A1","excel标题");
    			column.put("A2","excel标题");
    			column.put("A3","excel标题");
    		    
    			//excel内容
    		    List<Map<String, Object>> listResult = new ArrayList<Map<String, Object>>();
    		    if(query!=null && !query.isEmpty()){
    		    	
    		    	for (IsEntity vo: query) {
    		    		Map<String, Object> hashMap = new HashMap<String, Object>();
    		    		hashMap.put("A1",vo.getId());
    		    		hashMap.put("A2",vo.getName());
    		    		hashMap.put("A3",vo.getPassWord());
    		    		
    		    		listResult.add(hashMap);
    		    	}
    		    }
    			
                //去调用工具类的方法
    			HSSFWorkbook wb = ExcelUtils.getHSSFWorkbook(listResult, column);
    			return wb;
    		} catch (Exception e) {
    			//TODO处理异常
    		}
    		return null;
    	}

    注意:标题是指导出excel的标题,标题名称自己修改,excel的内容即是查询出来的数据,放到实体类IsEntity中。

    4. 实体类IsEntity

    package //TODO 包名
    
    public class IsEntity {
    
    	private String id;
    	private String name;
    	private String passWord;
    	public String getId() {
    		return id;
    	}
    	public void setId(String id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getPassWord() {
    		return passWord;
    	}
    	public void setPassWord(String passWord) {
    		this.passWord = passWord;
    	}
    	
    	
    }
    

     

    展开全文
  • Java 工具类之基于 POI 导出 Excel

    千次阅读 2018-09-18 17:48:48
    在平时的Web项目开发中,经常会用到Excel导出功能,在此将其总结为一个简单的工具类,以供平常使用 /** * Created with Intellij IDEA. ... * Description: 依赖于poi构建的excel表格导出工具类 * &lt;!--...
  • javapoi导出excel工具类

    千次阅读 2018-11-01 16:45:25
    最近整理出来的,先上代码: ...import java.io.OutputStream; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Http...
  • 使用poi导出excel支持xls、xlsx格式大数据导出java工具类,支持同一个单元格不同文本格式。找了好久,加上自己修改后,调试通过,发布出来分享,(调整student类位置)包含所需jar包,工具类,使用示例
  • POI导出工具类

    2018-12-11 17:00:49
    使用POI工具类,导入到项目中,引用项目的方法,修改一下内部的Bean类型,就可以将数据导出excel格式的文件。(支持excel2013)
  • * 导出excel(利用反射机制) * String[] title = {"订单号","商品名称","商品价格","创建时间"}; * String[] field = {"orderNum","productName","productPrice","createTime"}; * ExportTools.export("sellJoin...
  • 本人工作中自己写的一个excel工具类,可以单独打包成jar,作为公共模块使用。 使用它可以直接不用关心poi的api。导入导出,轻轻松松。 使用方法请关注一下,cn.com.flaginfo.biz.excel.test 包下面的Test类。
  • POI导出Excel工具类(简单看完就会)

    千次阅读 2019-03-08 11:49:46
    (一)POI介绍 Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式...本文介绍的是用POI做一个导出excel报表的工具类,相当实用也相当简单。 (二)POI导出报表要用到的包 1...
  • Java Poi 导出excel(支持各种设置字体、颜色、垂直居中)
  • 记录一下学习到的poi导出excel文件方法 文章目录在实际工作中,可能需要对表格进行导出,形成本地excel文件。本章例子中使用的实体第一步,获取实体的集合第二步,将实体集合放入表格中表格的格式由response...
  • 利用poi导入导出Excel xls,xlsx
  • 封装 poi,使用实体的列表(List),可以使用实体属性(一个String数组)指定生成的列,可以指定文件标题,列标题,生成excel,并在页面进行导出
  • java导入excel工具类。支持单个对象的赋值,列表对象的赋值,指定坐标的赋值。主要利用的是poi的技术,java反射和自定义注解
  • Java使用POI导出excel工具类一、简介二、添加依赖三、对应代码流程四、具体代码1、2003版本(HSSF)2、2007版本(XSSF)结束语 一、简介 首先,我们来对Excel进行一下了解,对于excel在我们日常工作中是一个非常常见...
  • Java使用POI导出Excel工具类(反射)

    千次阅读 2017-11-24 14:19:54
    pom.xml: <groupId>org.apache.poi <artifactId>poi <version>3.6 工具类:package com.taiji.jilin.common.util;import org.apac
  • spring boot2快速导出excel的示例源码 操作系统:windows10 JAVA jdk:1.8 开发工具:IDEA java架构:spring boot 2.1.6 gitHub:https://github.com/cn-h-jar/exportexcel 作者:jar 运行提示: 启动项目...
  • Java poi 实现excel导入导出工具类

    千次阅读 多人点赞 2020-06-10 16:17:10
    最近项目上又要大量的涉及excel导入导出,网上各种导入导出的方式层出不穷,我是比较青睐官方的poi,但是要自己去操作工作簿对象自己一行一行的读取,会有很多的重复代码,重复劳动,也极为不美观,基于合成/聚合...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,789
精华内容 3,115
关键字:

javapoi导出excel工具类

java 订阅