美文网首页
java中的POI

java中的POI

作者: 以宇宙为海的蓝鲸 | 来源:发表于2019-07-31 21:41 被阅读0次

    POI是一个由Apache提供的jar包,用于支持处理Excel、Word、PPT等文件。

    官网下载地址:http://poi.apache.org/

    使用前应先导入jar包,并配置build path。

    POI创建Excel文件并输入内容示例:

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.lang.reflect.Field;
    import java.util.ArrayList;
    import java.util.List;
    ​
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    ​
    public class ExportPoi {
    
     /**
     * 
     * @param clz  导出集合对象中每个元素的Class对象
     * @param ls  导出的集合对象
     * @param fileName  导出的文件名称
     * @param filePath  导出的文件路径
     * @param titls  导出文件的标题
     * @param fieldName  导出集合中对象的每个属性名称(英文)
     * @throws IllegalAccessException 属性的是不可见 抛出该异常
     * @throws IllegalArgumentException  非法参数异常
     * @throws IOException 连接错误
     */
     public static void export(Class<?> clz,List<?> ls,String fileName,String filePath,String[] titls,String[] fieldName) throws IllegalArgumentException, IllegalAccessException, IOException  {
     //创建工作簿对象
     Workbook wb = new HSSFWorkbook();
    
     //创建流对象
     FileOutputStream fs = new FileOutputStream(filePath+File.separator+fileName);
    
     //创建sheet
     Sheet sheet = wb.createSheet(fileName.substring(0,fileName.indexOf(".")));
    
     //创建row
     Row rowTitle = sheet.createRow(0);//表头
    
     //创建单元格
     for(int i = 0;i<titls.length;i++) {
     //创建单元格
     Cell cell = rowTitle.createCell(i);
     //填充值
     cell.setCellValue(titls[i]);
     }
    
     //添加数 据 循环创建List长度个row
     for(int i =0;i<ls.size();i++) {
     //创建row
     Row rowData = sheet.createRow(i+1);//行数据
     Field[] f = clz.getDeclaredFields();
     for(int j = 0;j<titls.length;j++) {
     //创建单元格
     Cell cell = rowData.createCell(j);
     //获取属性的名称
     f[j].setAccessible(true);
     cell.setCellValue(f[j].get(ls.get(i)).toString());
     f[j].setAccessible(false);
     }
     }
    
     //写出
     wb.write(fs);
     //关闭
     fs.close();
     wb.close();
     }
    
     public static void main(String[] args) throws Exception {
    
     List<Student> ls = new ArrayList<>();
     ls.add(new Student("张三1", 1, 1, 78));
     ls.add(new Student("张三2", 4, 2, 68));
     ls.add(new Student("张三3", 2, 1, 98));
     ls.add(new Student("张三5", 3, 2, 18));
     ls.add(new Student("张三4", 5, 1, 38));
    
     export(Student.class,ls,"学生成绩单.xls","C:\\Users\\22507\\Desktop",new String[] {"姓名","学号","性别","成绩"},new String[] {"name","id","gender","score"});
    
     }
    
    }
    ​
    class Student {
     private String name;
     private int id;
     private int gender;
     private int score;
     public Student(String name, int id, int gender, int score) {
     super();
     this.name = name;
     this.id = id;
     this.gender = gender;
     this.score = score;
     }
     public Student() {
     // TODO Auto-generated constructor stub
     }
     public String getName() {
     return name;
     }
     public void setName(String name) {
     this.name = name;
     }
     public int getId() {
     return id;
     }
     public void setId(int id) {
     this.id = id;
     }
     public int getGender() {
     return gender;
     }
     public void setGender(int gender) {
     this.gender = gender;
     }
     public int getScore() {
     return score;
     }
     public void setScore(int score) {
     this.score = score;
     } 
    }
    

    相关文章

      网友评论

          本文标题:java中的POI

          本文链接:https://www.haomeiwen.com/subject/ssuxdctx.html