• 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(); //有时要对特殊字段类型进行转换
















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


  • 相关阅读:
    POJ2481(树状数组:统计数字 出现个数)
    jenkins(2)-linux环境下jenkins启动/重启/停止命令
    jenkins(1)-部分插件由于缺少依赖无法加载。要恢复这些插件提供的功能,需要修复这些问题并重启Jenkins的解决办法
    linux(4)-rpm包安装
    charles(2)-charles如何打断点,修改Request数据
    charles(1)-charles如何打断点,修改Response数据
    linux(3)-普通用户如何切换到root
    jmeter(51) Groovy脚本高级实战
    jmeter(49)-jenkins+ant+jmeter持续集成接口自动化测试-(linux环境)
    Codeforces Round #545 (Div. 2)D(KMP,最长公共前后缀,贪心)
  • 原文地址:https://www.cnblogs.com/qingmaple/p/4045647.html
Copyright © 2020-2023  润新知