首页 > 编程语言 > 详细

java生成excel

时间:2021-05-13 13:29:33      阅读:13      评论:0      收藏:0      [点我收藏+]

import org.apache.poi.usermodel.HSSFCell;

import org.apache.poi.usermodel.HSSFRow;

import org.apache.poi.usermodel.HSSFSheet;

import org.apache.poi.usermodel.HSSFWorkbook;

import org.springframwork,util.ReflectionUtils;

import java.io.File;

import java.io.FileOutputStream;

import java.io.OutputStream;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

import java.math.BigDecimal;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

 

public class GenerateExcle<T>{

  /**

  *@param lsit 文件内容

  *@param keys 属性信息

  *@parm columns 行标题

  *@param fileName 文件名

  *@param <T> list实体对象

  *trrows Exception

  */

  public static<T>  viod generate(List<T> list,List<String>  keys,List<String> columns,String fileName) throws Exception{

    String path = "/home/spool";

    HSSFWorkbook workbook = new HSSWorkbook();

    HSSFSheet sheet = workbook.createSheet();

    sheet.setDefaultColumnWidth(20);

    //创建标题行

    HFSSRow row = sheet.createRow(0);

    for(int i=0;i<columns.size();i++){

      HSSFCell createCell = row.createCell(i);

      createCell.setCellValue(columns.get(i));

    }

    HFSSRow rowi = null;

    HSSFCell createCell = null;

    for(int i=0;i<list.size();i++)

      T t = list.get(i);

      Class<?> cls = t.getClass();

      Files[] fields =  cls.getDeclareFields();

      rowi = sheet.createRow(i+1);//创建行

      for(int j=0;j<keys.size();j++){

        createCell = rowi.createCell(j);//设置单元格内容

        ReflectionUtils.makeAccessible(fields[j]);//fortify安全扫描使用srping提供的工具类

        String name = key.get(j);

        name = name.replaceFirst(name.substring(0,1),name.substring(0,1).toUpperCase());

        Method m = cls.getMethod("get"+name);

        String rs;

        try {

          rs = m.invok(t).toString();

        }catch (Exception e){

          rs = "";

        }

        createCell .setValue(rs);

      }

    }

    //写出

    File file = new File(path,fileName);//在指定位置创建文件

    OutputStream out = null;

    try {

      if(!file.esists()){//如果文件不存在,则创建新文件

        file.createNewFile();

      }else{//如果文件存在,删除存在的文件,并创建新文件

        file.delete();

        file.createNewFile();

      }

      out = new FileOutputStream(file);

      workbool.write(out);

    }catch(Exception e){

      e.printStackTrace();

    }fianlly{

      if(out!=null){

        out.close();

      }

    }

  }

/**************************************************************************************************

*调用

* List<String> keys = Arrays.asList("fsBank","fsEntNo","fsMode");

*List<String> columns = Arrays.asList("机构编码","企业编码","业务类型");

*ArrayList list<PO> polist = new ArrayList<~>();

*GenerateExcle.generate(polist,keys,columns,"abc.xls);

**************************************************************************************************/

}

 

java生成excel

原文:https://www.cnblogs.com/cjl-lhj/p/14763579.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!