EasyPoi快速 Office、PDF 开发工具

联合创作 · 2023-09-28 23:23

easypoi 功能如同名字 easy,主打的功能就是容易,让一个没见接触过 poi 的人员可以方便地写出 Excel 导出、Excel 模板导出、Excel 导入、Word 模板导出,通过简单的注解和模板语言(熟悉的表达式语法),完成以前复杂的写法。

EasyPoi的主要特点

  1. 设计精巧,使用简单
  2. 接口丰富,扩展简单
  3. 默认值多,write less do more
  4. AbstractView 支持,web导出可以简单明了

EasyPoi的几个入口工具类

1.ExcelExportUtil Excel导出(普通导出,模板导出)
2.ExcelImportUtil Excel导入
3.WordExportUtil Word导出(只支持docx ,doc版本poi存在图片的bug,暂不支持)

EasyPoi导出实例

1.注解,导入导出都是基于注解的,实体上做上注解,标示导出对象,同时可以做一些操作

    @ExcelTarget("courseEntity")
    public class CourseEntity implements java.io.Serializable {
    /** 主键 */
    private String id;
    /** 课程名称 */
    @Excel(name = "课程名称", orderNum = "1", needMerge = true)
    private String name;
    /** 老师主键 */
    @ExcelEntity(id = "yuwen")
    @ExcelVerify()
    private TeacherEntity teacher;
    /** 老师主键 */
    @ExcelEntity(id = "shuxue")
    private TeacherEntity shuxueteacher;

    @ExcelCollection(name = "选课学生", orderNum = "4")
    private List students;

2.基础导出    传入导出参数,导出对象,以及对象列表即可完成导出

    HSSFWorkbook workbook = ExcelExportUtil.exportExcel(new ExportParams(
                "2412312", "测试", "测试"), CourseEntity.class, list);

3.基础导出,带有索引    在到处参数设置一个值,就可以在导出列增加索引

    ExportParams params = new ExportParams("2412312", "测试", "测试");
    params.setAddIndex(true);
    HSSFWorkbook workbook = ExcelExportUtil.exportExcel(params,
            TeacherEntity.class, telist);

4.导出Map    创建类似注解的集合,即可完成Map的导出,略有麻烦

    List entity = new ArrayList();
    entity.add(new ExcelExportEntity("姓名", "name"));
    entity.add(new ExcelExportEntity("性别", "sex"));

    List> list = new ArrayList>();
    Map map;
    for (int i = 0; i < 10; i++) {
        map = new HashMap();
        map.put("name", "1" + i);
        map.put("sex", "2" + i);
        list.add(map);
    }

    HSSFWorkbook workbook = ExcelExportUtil.exportExcel(new ExportParams(
            "测试", "测试"), entity, list);

5.模板导出    根据模板配置,完成对应导出

    TemplateExportParams params = new TemplateExportParams();
    params.setHeadingRows(2);
    params.setHeadingStartRow(2);
    Map map = new HashMap();
    map.put("year", "2013");
    map.put("sunCourses", list.size());
    Map obj = new HashMap();
    map.put("obj", obj);
    obj.put("name", list.size());
    params.setTemplateUrl("org/jeecgframework/poi/excel/doc/exportTemp.xls");
    Workbook book = ExcelExportUtil.exportExcel(params, CourseEntity.class, list,
            map);

6.导入    设置导入参数,传入文件或者流,即可获得相应的list

    ImportParams params = new ImportParams();
    params.setTitleRows(2);
    params.setHeadRows(2);
    //params.setSheetNum(9);
    params.setNeedSave(true);
    long start = new Date().getTime();
    List list = ExcelImportUtil.importExcel(new File(
            "d:/tt.xls"), CourseEntity.class, params);

7.和spring mvc的无缝融合    简单几句话,Excel导出搞定

    @RequestMapping(params = "exportXls")
    public String exportXls(CourseEntity course,HttpServletRequest request,HttpServletResponse response
            , DataGrid dataGrid,ModelMap map) {

        CriteriaQuery cq = new CriteriaQuery(CourseEntity.class, dataGrid);
        org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, course, request.getParameterMap());
        List courses = this.courseService.getListByCriteriaQuery(cq,false);

        map.put(NormalExcelConstants.FILE_NAME,"用户信息");
        map.put(NormalExcelConstants.CLASS,CourseEntity.class);
        map.put(NormalExcelConstants.PARAMS,new ExportParams("课程列表", "导出人:Jeecg",
                "导出信息"));
        map.put(NormalExcelConstants.DATA_LIST,courses);
        return NormalExcelConstants.JEECG_EXCEL_VIEW;

    }
浏览 5
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报