JXLS使用方法(文件上传读取)xlsx文件读取
1.官方文档:http://jxls.sourceforge.net/reference/reader.html
2.demo git地址:https://bitbucket.org/leonate/jxls-demo
3.maven添加
<groupId>org.jxls</groupId>
<artifactId>jxls-reader</artifactId>
<version>2.0.2</version>
</dependency>
<?xml version="1.0" encoding="ISO-8859-1"?>
<workbook>
<worksheet name="Sheet1">(文件页数)
<section startRow="0" endRow="0">(表头开始至结束行)
</section>
<loop startRow="1" endRow="1" items="list" var="soImportDTO" varType="com.domain.dto.SoImportDTO">(开始循环读取文件数据,配置开始行,items映射的list var映射的bean varType 类路径)
<section startRow="1" endRow="1">(循环开始行)
<mapping row="1" col="0">soImportDTO.extno</mapping>
<mapping row="1" col="1">soImportDTO.whcode</mapping>
<mapping row="1" col="2">soImportDTO.type</mapping>
<mapping row="1" col="3">soImportDTO.soLineNo</mapping>
<mapping row="1" col="4">soImportDTO.sku</mapping>
<mapping row="1" col="5">soImportDTO.qty</mapping>
<mapping row="1" col="6">soImportDTO.supplierCode</mapping>
<mapping row="1" col="7">soImportDTO.supplierName</mapping>
<mapping row="1" col="8">soImportDTO.carrierCode</mapping>
<mapping row="1" col="9">soImportDTO.carrierName</mapping>
<mapping row="1" col="10">soImportDTO.shipDate</mapping>
<mapping row="1" col="11">soImportDTO.carNo</mapping>
<mapping row="1" col="12">soImportDTO.shipFromContact</mapping>
<mapping row="1" col="13">soImportDTO.shipFromPhone</mapping>
<mapping row="1" col="14">soImportDTO.remark</mapping>(以上是配置每列对应的bean的属性)
</section>
<loopbreakcondition>(结束条件配置)
<rowcheck offset="0">
<cellcheck offset="0">以什么条件结束写在这里 若是为空结束这不填</cellcheck>
</rowcheck>
</loopbreakcondition>
</loop>
</worksheet>
</workbook>
表头样式
读取文件代码:
List<SoImportDTO> soImportDTOList = new ArrayList<>();
Map<String,List<SoImportDTO>> beans = new HashMap<>();
InputStream inputXML = new BufferedInputStream(getClass().getResourceAsStream("/xmlMapper/so-import.xml"));
XLSReader mainReader = null;
try {
mainReader = ReaderBuilder.buildFromXML( inputXML );
} catch (IOException e1) {
log.error("读取配置文件失败"+e1);
throw new ApplicationException(ErrorCode.READ_CONFIG_FAIL.code(), ErrorCode.READ_CONFIG_FAIL.message());
} catch (SAXException e1) {
log.error("读取配置文件失败"+e1);
throw new ApplicationException(ErrorCode.READ_CONFIG_FAIL.code(), ErrorCode.READ_CONFIG_FAIL.message());
}
InputStream inputXLS = null;
try {
inputXLS = file.getInputStream();
} catch (IOException e1) {
throw new ApplicationException(ErrorCode.READ_ORDER_FAIL.code(), ErrorCode.READ_ORDER_FAIL.message());
}
List<SoImportDTO> soImportDTOs = new ArrayList<>();
beans.put("list", soImportDTOs);
ConvertUtils.register(new DateConverter(), Date.class);
try {
XLSReadStatus readStatus = mainReader.read(inputXLS, beans);
} catch (InvalidFormatException e1) {
log.error("将数据映射到bean时出错"+e1);
throw new ApplicationException(ErrorCode.MAPPED_FAIL.code(), ErrorCode.MAPPED_FAIL.message());
} catch (IOException e1) {
log.error("将数据映射到bean时出错"+e1);
throw new ApplicationException(ErrorCode.MAPPED_FAIL.code(), ErrorCode.MAPPED_FAIL.message());
}
完成上述之后操作之后 数据就已经map进bean里 到beans里面去拿list就ok
JXLS使用方法(文件上传读取)xlsx文件读取的更多相关文章
- SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程 ...
- SpringMVC文件上传下载(单文件、多文件)
前言 大家好,我是bigsai,今天我们学习Springmvc的文件上传下载. 文件上传和下载是互联网web应用非常重要的组成部分,它是信息交互传输的重要渠道之一.你可能经常在网页上传下载文件,你可能 ...
- 强大的支持多文件上传的jQuery文件上传插件Uploadify
支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Fla ...
- struts文件上传(多文件)
第01步:配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version= ...
- Struts1文件上传、单文件、多文件上传【Struts1】
将struts1文件上传的操作汇总了一下,包括单文件上传和多文件上传,内容如下,留作备忘: Struts2实现文件上传的文章(http://blog.csdn.net/itwit/article/d ...
- (29)Spring boot 文件上传(多文件上传)【从零开始学Spring Boot】
文件上传主要分以下几个步骤: (1)新建maven java project: (2)在pom.xml加入相应依赖: (3)新建一个表单页面(这里使用thymleaf); (4)编写controlle ...
- skymvc文件上传支持多文件上传
skymvc文件上传支持多文件上传 支持单文件.多文件上传 可以设定 文件大小.存储目录.文件类型 //上传的文件目录 $this->upload->uploaddir="att ...
- yii2.0单文件上传和多文件上传
yii2文件上传使用到yii2自带的文件上传类UploadFIle,以及对应的模型规则,这里分别介绍单文件上传和多文件上传: yii2单个文件上传: 上传步奏,先创建上传表单模型model(包含验证规 ...
- 使用PHP实现文件上传和多文件上传
PHP 2013 年 9 月 4 日 暂无评论 在PHP程序开发中,文件上传是一个使用非常普遍的功能,也是PHP程序员的必备技能之一.值得高兴的是,在PHP中实现文件上传功能要比在Java.C#等语言 ...
- java常见3种文件上传速度对比和文件上传方法详细代码
在java里面文件上传的方式很多,最简单的依然是FileInputStream.FileOutputStream了,在这里我列举3种常见的文件上传方法代码,并比较他们的上传速度(由于代码是在本地测试, ...
随机推荐
- eclipse环境下日志打印输出
1.先将jdk配置一下 选Preferences---- 找到自己的jdk所在的位置 2.配置Tomcat window-----preferences------- 找到自己的tomcat所在位置 ...
- Android WebView存在跨域访问漏洞(CNVD-2017-36682)介绍及解决
Android WebView存在跨域访问漏洞(CNVD-2017-36682).攻击者利用该漏洞,可远程获取用户隐私数据(包括手机应用数据.照片.文档等敏感信息),还可窃取用户登录凭证,在受害者毫无 ...
- 初读"Thinking in Java"读书笔记之第二章 --- 一切都是对象
用引用操纵对象 Java里一切都被视为对象,通过操纵对象的一个"引用"来操纵对象. 例如, 可以将遥控器视为引用,电视机视为对象. 创建一个引用,不一定需要有一个对象与之关联,但此 ...
- 表单验证插件--formvalidation
表单验证是一个非常基础的功能,当你的表单项少的时候,可以自己写验证,但是当你的表单有很多的时候,就需要一些验证的插件.今天介绍一款很好用的表单验证插件,formvalidation.其前身叫做boot ...
- swiper插件的简单使用,实现图片轮播
移动端和p c端经常会遇到写轮播图的情况,这里只是简单的说一下swiper插件的简单用法(移动端为例). <!DOCTYPE html> <html lang="en&qu ...
- vi/vim 如何添加和删除多行注释
1.进入vi/vim编辑器,按CTRL+V进入可视化模式(VISUAL BLOCK). 2.移动光标上移或者下移,选中多行的开头. 3.选择完毕后,按大写的I键,此时下方会提示进入"inse ...
- mysql数据库快速入门(1)
1.数据库操作 1.1.连接mysql服务器 mysql -u root( 用户名 ) -p 1.2.退出mysql命令提示窗 exit 1.3.查看版本 SELECT VERSION(); 1.4. ...
- python2与python3的区别 ,小数据池 bytes 类型
一.python2和3的区别 在python3中 在python2中 print('ab')方式打印内容()括号是必须要有的. print 'ab' 可以加可以不加. 只有range 有ran ...
- bzoj 4918: 回文数对
传送门 Description 给定区间[L,R],请统计有多少对整数A,B(L<=A,B<=R)满足A xor B的值在二进制表示下,去掉所有前导0后是回文串 Input 第一行包含一个 ...
- BZOJ:4825: [Hnoi2017]单旋
Description H 国是一个热爱写代码的国家,那里的人们很小去学校学习写各种各样的数据结构.伸展树(splay)是一种数据结构,因为代码好写,功能多,效率高,掌握这种数据结构成为了 H 国的必 ...