1.官方文档:http://jxls.sourceforge.net/reference/reader.html

2.demo git地址:https://bitbucket.org/leonate/jxls-demo

3.maven添加

 <dependency>
    <groupId>org.jxls</groupId>
    <artifactId>jxls-reader</artifactId>
    <version>2.0.2</version>
</dependency> 
4.xml配置文件(视上传文件结构配置,这里就最简单的文件作配置)

<?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文件读取的更多相关文章

  1. SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程 ...

  2. SpringMVC文件上传下载(单文件、多文件)

    前言 大家好,我是bigsai,今天我们学习Springmvc的文件上传下载. 文件上传和下载是互联网web应用非常重要的组成部分,它是信息交互传输的重要渠道之一.你可能经常在网页上传下载文件,你可能 ...

  3. 强大的支持多文件上传的jQuery文件上传插件Uploadify

    支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Fla ...

  4. struts文件上传(多文件)

    第01步:配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version= ...

  5. Struts1文件上传、单文件、多文件上传【Struts1】

     将struts1文件上传的操作汇总了一下,包括单文件上传和多文件上传,内容如下,留作备忘: Struts2实现文件上传的文章(http://blog.csdn.net/itwit/article/d ...

  6. (29)Spring boot 文件上传(多文件上传)【从零开始学Spring Boot】

    文件上传主要分以下几个步骤: (1)新建maven java project: (2)在pom.xml加入相应依赖: (3)新建一个表单页面(这里使用thymleaf); (4)编写controlle ...

  7. skymvc文件上传支持多文件上传

    skymvc文件上传支持多文件上传 支持单文件.多文件上传 可以设定 文件大小.存储目录.文件类型 //上传的文件目录 $this->upload->uploaddir="att ...

  8. yii2.0单文件上传和多文件上传

    yii2文件上传使用到yii2自带的文件上传类UploadFIle,以及对应的模型规则,这里分别介绍单文件上传和多文件上传: yii2单个文件上传: 上传步奏,先创建上传表单模型model(包含验证规 ...

  9. 使用PHP实现文件上传和多文件上传

    PHP 2013 年 9 月 4 日 暂无评论 在PHP程序开发中,文件上传是一个使用非常普遍的功能,也是PHP程序员的必备技能之一.值得高兴的是,在PHP中实现文件上传功能要比在Java.C#等语言 ...

  10. java常见3种文件上传速度对比和文件上传方法详细代码

    在java里面文件上传的方式很多,最简单的依然是FileInputStream.FileOutputStream了,在这里我列举3种常见的文件上传方法代码,并比较他们的上传速度(由于代码是在本地测试, ...

随机推荐

  1. 类和对象的创建过程(元类,__new__,__init__,__call__)

    一. type() 1.创建类的两种方式 方式一 class MyClass(object): def func(self,name): print(name) myc = MyClass() pri ...

  2. Winform跨窗体操作控件(使用委托)

    Winform跨窗体操作控件是winform开发中很常见的形式,最常见且简单有效的方式便是使用委托的方式来进行操作,下面我将通过一个小实例来说明如何使用委托跨窗体实现控件操作. 实例介绍:两个窗体,F ...

  3. IOS10.3上传照片只能拍照不能选择解决办法

    升级IOS10.3正式版以后可能会出现上传文件的控件只能拍照而不能选择现有图片的问题. 正好被我们碰到了,于是找了找解决思路,发现如下解决思路: 原代码为: <input type=" ...

  4. eclipse的各种错误和解决方法

    1.cannot import xxx because the project name is in use

  5. Cenots更换YUM源的问题

    [1] 首先备份/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/Cent ...

  6. git常用使用命令

    Git远程操作详解(from 阮一峰) git clone.git remote.git fetch.git pull.git push git拉取远程分支并创建本地分支 git中文学习文档(详细) ...

  7. Mvc项目部署IIS报错:没有为请求的URL配置默认文档,并且没有在服务器设置目录浏览

    问题原因: 1.iis是在安装完.net framework 之后才安装的,需要进行iis注册,开始--运行--cmd,打开命令行提示符,输入命令如下 C:\Windows\Microsoft.NET ...

  8. 腾讯windows系统服务器

    今天用腾讯的服务器搭建起了自己的博客,先看主页效果...简单的ui设计,主要就是要上服务器看看.    说说服务器的搭建: 1.卖,进腾讯云,自己对应的买操作系统的就可以的啦.具体的链接: https ...

  9. 基于input子系统的sensor驱动调试(一)

    要想弄明白世界的本质,就要追根溯源:代码也是一样的道理: 最近调试几个sensor驱动,alps sensor驱动.compass sensor驱动.G-sensor驱动都是一样的架构: 一.基于in ...

  10. jdbc+servlet+jsp实现登录验证

    基础知识准备:sql的增删改查. 新增:insert into 表名称(字段名.....)values(字段名....). 修改:update 表名称 set  字段名="新值" ...