热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java导入Excel文件返回数据对应属性类字段,Java导出Excel文件如何让数据对应指定的标题字段

Java导入Excel文件如何对应属性类对应的字段?Java导出Excel文件如何实现?下面分为两段供各位测试,要是不懂或者实在不行可以评论一下,看到我会回复的jar这些你们可以自

Java导入Excel文件如何对应属性类对应的字段?Java导出Excel文件如何实现?
下面分为两段供各位测试,要是不懂或者实在不行可以评论一下,看到我会回复的
jar这些你们可以自己找,用maven也就是复制粘贴的事。

下面的链接是封装好的Excel文件导入导出的样式跟注解:
链接: https://pan.baidu.com/s/1k484vLTeTuMnTaNsOqYFqQ 提取码: wtkk

Excel文件导入导出必要的jar包:
《Java导入Excel文件返回数据对应属性类字段,Java导出Excel文件如何让数据对应指定的标题字段》

属性类中设置:
通过画出的绿线那里的顺序将Excel文件中的数据一一对应用于导入导出
@ExcelField(title=“科目名称”, align=2, sort=25,groups={1,2})
《Java导入Excel文件返回数据对应属性类字段,Java导出Excel文件如何让数据对应指定的标题字段》

导入:

前端通过form表单提交Excel文件数据:

class="form-search" Onsubmit="loading('正在导入,请稍等...');">



  

下载模板

后端导入通过前端提交的文件利用封装好的Java类直接填充属性类中对应的属性:

@RequestMapping(value = "import", method=RequestMethod.POST)
public String importFile(MultipartFile file, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:" + adminPath + "/sys/user/list?repage";
}
try {
int successNum = 0;//用于计算成功数量
int failureNum = 0;//用于计算错误数量
StringBuilder failureMsg = new StringBuilder();
ImportExcel ei = new ImportExcel(file, 1, 0);//这个是ImportExcel(封装好的Java类)
int[] group = {1};//group可以不要
List list = ei.getDataList(GrlLonixSubjectFinancial.class,group);//直接调用这个方法就可以返回对应的字段内部是通过你导出的@ExcelField注解指定的字段进行自动赋值
for (GrlLonixSubjectFinancial subject : list){//增强for是直接返回属性类的了
try{
if ("true".equals(checkCode("", subject.getFinancialCode()))){
//BeanValidators.validateWithException(validator, subject);
subject.setParent(findPreambleCode(null,subject.getFinancialCode()));
grlLonixSubjectFinancialService.save(subject,"yes");//添加到数据库
successNum++;
}else{
failureMsg.append("
科目编码 "+subject.getFinancialCode()+" 已存在; ");
failureNum++;
}
}catch(ConstraintViolationException ex){
failureMsg.append("
科目编码 "+subject.getFinancialCode()+" 导入失败:");
List messageList = BeanValidators.extractPropertyAndMessageAsList(ex, ": ");
for (String message : messageList){
failureMsg.append(message+"; ");
failureNum++;
}
}catch (Exception ex) {
failureMsg.append("
科目编码 "+subject.getFinancialCode()+" 导入失败:"+ex.getMessage());
}
}
if (failureNum>0){
failureMsg.insert(0, ",失败 "+failureNum+" 条用户,导入信息如下:");
}
addMessage(redirectAttributes, "已成功导入 "+successNum+" 条科目"+failureMsg);
} catch (Exception e) {
addMessage(redirectAttributes, "导入科目失败!失败信息:"+e.getMessage());
}
return "redirect:" + adminPath + "/subject/grlLonixSubjectFinancial/list?repage";//返回路径
}

导出:

后端导出是通过上面属性类设置在字段上的注解而对应导出的:

@RequestMapping(value = "export", method=RequestMethod.POST)
public String exportFile(GrlLonixSubjectFinancial grlLonixSubjectFinancial, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
try {
String fileName = "科目数据"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";//文件名
//数据库查询数据,注意:这里查询的数据是List<属性类>的数据的。我这里只是多了一层,看下面传参就知道了
Page page = grlLonixSubjectFinancialService.findPage(new Page(request, response, -1), grlLonixSubjectFinancial);
int[] group = {1};//这个可以不用
new ExportExcel("科目数据", GrlLonixSubjectFinancial.class,group).setDataList(page.getList()).write(response, fileName).dispose();
return null;//这个返回可以根据自己的路径来定
} catch (Exception e) {
addMessage(redirectAttributes, "导出科目失败!失败信息:"+e.getMessage());
}
return "redirect:" + adminPath + "/subject/grlLonixSubjectFinancial/list?repage";
}

推荐阅读
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • JVM 学习总结(三)——对象存活判定算法的两种实现
    本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ... [详细]
  • importjava.util.ArrayList;publicclassPageIndex{privateintpageSize;每页要显示的行privateintpageNum ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 本文详细介绍了Python中正则表达式和re模块的使用方法。首先解释了转义符的作用,以及如何在字符串中包含特殊字符。然后介绍了re模块的功能和常用方法。通过学习本文,读者可以掌握正则表达式的基本概念和使用技巧,进一步提高Python编程能力。 ... [详细]
author-avatar
透明
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有