热门标签 | 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";
}

推荐阅读
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • 深入理解 .NET 中的中间件
    中间件是插入到应用程序请求处理管道中的组件,用于处理传入的HTTP请求和响应。它在ASP.NET Core中扮演着至关重要的角色,能够灵活地扩展和自定义应用程序的行为。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • Linux系统中Java程序Too Many Open Files问题的深入解析与解决方案
    本文详细分析了在Linux环境下运行的Java应用程序中可能出现的“Too many open files”异常现象,探讨其成因及解决方法。该问题通常出现在高并发文件访问或大量网络连接场景下,对系统性能和稳定性有较大影响。 ... [详细]
  • 深入理解Java字符串池机制
    本文详细解析了Java中的字符串池(String Pool)机制,探讨其工作原理、实现方式及其对性能的影响。通过具体的代码示例和分析,帮助读者更好地理解和应用这一重要特性。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 本文介绍了在Java环境中使用PDFBox和XPDF工具从PDF文件中提取文本内容的方法。重点讨论了处理中文字符集及解决相关错误的技术细节,特别是针对某些特定格式的PDF文件(如网上填写的报名表和下载的论文)遇到的问题及解决方案。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
  • 本文介绍了如何利用Python进行批量图片尺寸调整,包括放大和等比例缩放。文中提供了详细的代码示例,并解释了每个步骤的具体实现方法。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • Spring Boot单元测试中Redis连接失败的解决方案
    本文探讨了在Spring Boot项目中进行单元测试时遇到Redis连接问题的原因及解决方法,详细分析了配置文件加载路径不当导致的问题,并提供了有效的解决方案。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 基于机器学习的人脸识别系统实现
    本文介绍了一种使用机器学习技术构建人脸识别系统的实践案例。通过结合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社区 版权所有