• java 导入导出excel


    一,导出excel

    1,使用excel模板

    public void exportLog() throws Exception{
            SystemUser currentUsr = getCurrentSystemUser();
            
            //该用户的所有日志
            List<TLogInfo> loglist=logService.getLogInfosByUserId(currentUsr.getId());
            
            List<TLogInfo> list=new ArrayList<TLogInfo>();
            if(loglist!=null && loglist.size()>0){
                for(TLogInfo log:loglist){
                    TLogInfo export=new TLogInfo();
                    export.setProName(log.getProName());
                    export.setLogTitle(log.getLogTitle());
                    export.setLogType(log.getLogType());
                    export.setWorkTime(log.getWorkTime());
                    export.setLogFillTime(log.getLogFillTime());
                    list.add(export);
                }
            }
            String templateFileName = "xlstemp/personallog.xls";
            String resultFileName = "xlsresult/personallog.xls";
            String path = ExcelUtil.createExcel(templateFileName, list,
                    resultFileName);
            File file = new File(path);
            byte[] bytes = FileUtils.readFileToByteArray(file);
            downloadFile("信息.xls", bytes);
            file.deleteOnExit();        
            
        }
     ExcelUtil类的createExcel方法
    public static String createExcel(String templateFileName, List<?> list,
                String resultFileName) {
            // 创建XLSTransformer对象
            XLSTransformer transformer = new XLSTransformer();
            // 获取java项目编译后根路径
            String class_path = ExcelUtil.class.getClassLoader().getResource("").getPath();
            // 得到模板文件路径
            String srcFilePath = class_path + templateFileName;
            Map<String, Object> beanParams = new HashMap<String, Object>();
            beanParams.put("list", list);
            String destFilePath = class_path + resultFileName;
            try {
                // 生成Excel文件
                transformer.transformXLS(srcFilePath, beanParams, destFilePath);
                return destFilePath;
            } catch (ParsePropertyException e) {
                e.printStackTrace();
            } catch (InvalidFormatException e) {
                e.printStackTrace();
            }catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
    2,使用poi.jar
    Object property = PropertyUtils.getProperty(bean, fieldName); //获取对象中指定字段的值

    二,导入excel
    构造一个map集合,(用户名,username)
    读取表头时,根据键得到对应的value,即保存到对象时要用到的字段名,构造一个字段列表,以后遍历每一行的内容,可找相对应的索引的字段名,这样就可以将值保存到对象中
    String typeName = PropertyUtils.getPropertyType(bean, name).getName(); //有时要对特殊字段类型进行转换
















    有问题在公众号【清汤袭人】找我,时常冒出各种傻问题,然一通百通,其乐无穷,一起探讨


  • 相关阅读:
    Kernel 3.0.8 内存管理函数【转】
    machine_desc结构体【转】
    Linux内存管理--物理内存分配【转】
    struct 和 class 不同点
    Zabbix Step 1 : Install CentOS6.5 and Configration
    读《大数据》的三重大思维转变,有感
    宇宙中最强大的开发环境免费了!
    中国开源不靠谱,谈何服务万众创新?
    【笨木头Lua专栏】基础补充08:协同程序之resume-yield间的数据返回
    [概率dp] ZOJ 3822 Domination
  • 原文地址:https://www.cnblogs.com/qingmaple/p/4045647.html
Copyright © 2020-2023  润新知