easypoi必填项_GitHub - wangjingting/poi-utils: help you more easy read or write excel file
author:邹凯明
poi-utils
help you more easy reading or writing[TODO] excel file
本工具包入口类是ExcelFileUtil,对于读取excel提供的是以下工具类:
ExcelFileUtil.readInputStreamToObject(InputStream workbookInputStream,ExcelFileReadSheetProcessor>... sheetProcessors);
第一个参数是Excel File的输入流,第二个参数是Sheet解析器,它是一个抽象类,含有三个必填的参数和两个必须实现的方法:
*sheetIndex或sheetName;//设置要解析哪一张sheet(based-0)
*targetClass;//设置读取的excel行数据将被解析的目标Bean Class
*fieldMapping;//设置excel列和Java Bean的字段映射[下面结束]
*void process(){ExcelFileReadContext context, List list};//解析Excel成功后后的回调,结果将由lis参数返回
*void onExcepton(RuntimeException e);//执行异常时的回掉,注意如果异常是ExcelFileException,你可以定位出解析excel异常的具体信息。
注:setStartRow;虽然不是必填项,但由于Excel中第一行通常是列名,真正的数据是从第1(based-0)行开始的,所以通常都会设置该参数;
类通过类(ExcelFileFieldMapping)将excel某一列和Java
Bean的某一字段建立映射关系,然后通过ExcelFileCellValueMapping/ExcelFileReadCellProcessor类
灵活处理单元格内容的具体转换,方便你能快速的实现Excel文件解析。
##this is a sample demo for reading excel file.
public static void main(String[] args) throws FileNotFoundException {
InputStream in = ExcelFileUtilTest.class.getResourceAsStream("/excel/xlsx/file1.xlsx");
ExcelFileReadSheetProcessor sheetProcessor = new ExcelFileReadSheetProcessor() {
public void process(ExcelFileReadContext context, List list) {
//这里处理解析excel成功后的结果
System.out.println(JSONObject.toJSONString(list));
}
public void onExcepton(RuntimeException e) {
//这里处理解析excel过程中的异常
if (e instanceof ExcelFileException) {
ExcelFileException ef = (ExcelFileException) e;
if (ef.getSystemErrorCode() == ExcelFileException.CODE_OF_CELL_VALUE_REQUIRED) {
System.out.println("第" + (ef.getRowIndex() + 1) + "行,第" + ef.getColStrIndex() + "列是必填项");
} else if (ef.getSystemErrorCode() == ExcelFileException.CODE_OF_CELL_VALUE_NOT_MATCHED) {
System.out.println("第" + (ef.getRowIndex() + 1) + "行,第" + ef.getColStrIndex() + "列数据不匹配");
} else {
System.out.println("第" + (ef.getRowIndex() + 1) + "行,第" + ef.getColStrIndex() + "列数据解析异常");
}
}
throw e;
}
};
ExcelFileFieldMapping fieldMapping = new ExcelFileFieldMapping();
fieldMapping.put("A", "tByte");//cell直接解析
fieldMapping.put("J", "tEnum1", new ExcelFileReadCellProcessor() {//cell自定义解析
public Object process(ExcelFileReadContext> context, Cell cell, ExcelFileCellValue cellValue) {
return cellValue.getStringValue() + "=>row:" + context.getCurRowIndex() + ",col:"
+ context.getCurColStrIndex();
}
});
ExcelFileCellValueMapping valueMapping = new ExcelFileCellValueMapping();
valueMapping.put("请选择", null);
valueMapping.put("枚举1", TestEnum.AA.toString());
valueMapping.put("枚举2", TestEnum.BB.toString());
fieldMapping.put("K", "tEnum2", valueMapping);//cell自定义解析
sheetProcessor.setSheetIndex(0);//设置从excel的第几张sheet开始解析(based-0)
sheetProcessor.setStartRow(1);//设置从excel的第几行开始解析(based-0)
sheetProcessor.setTargetClass(TestBean.class);//设置读取的excel行数据将被解析的目标Bean Class
sheetProcessor.setFieldMapping(fieldMapping);//设置excel列和Java Bean的字段映射
ExcelFileUtil.readInputStreamToObject(in, sheetProcessor);//执行解析
}
###详细实例请参考ExcelFileUtilTest类
easypoi必填项_GitHub - wangjingting/poi-utils: help you more easy read or write excel file相关推荐
- easypoi必填项_EasyExcel对Excel文件的解析过程
POI与easyExcel的区别: . POI是通过WorkBook来解析表格文件的,虽然内部有使用到Sax模式,能后大大的提高效率,但是要解析大文件(10w,100w行)的话很容易出现OOM(内存溢 ...
- div.php织梦自定义表判断不能为空,织梦自定义表单字段为必填项的教程
织梦自定义表单用的最多的就是制作留言板,报名等功能,但是添加的字段不填写就能提交,容易被恶意提交,为了防止这些,我们可以把这些字段选项设定为必填项. 方法如下: 1. 用php验证 在plus/diy ...
- ExtJS4为form表单必填项添加红色*标识
通常情况下,ExtJS4的form表单必填项在输入状态下会有特殊提示,非输入状态下,显示却和其他项没有任何区别.为使必填项更加容易区分,我们需要根据allowBlank的属性值,为form表单中的必填 ...
- 【CSS系列】CSS 实现必填项前/后添加红色星号
在一些必填项的标签加星,来提示用户,怎么实现呢?请看本文介绍的两种方法. 1 . 常规写法 <label><span style="color:red;"> ...
- layui自带验证体系:手机号验证、邮箱验证、必填项非空验证、数字验证(含代码、案例)
layui自带验证体系:手机号验证.邮箱验证.必填项非空验证.数字验证(含代码.案例) 案例 · 截图: 实例代码: <!DOCTYPE html> <html> <he ...
- android textview 必填,在android中如何使用Html渲染的方式实现必填项前面的*号
本篇文章主要介绍了android中使用Html渲染的方式实现必填项前面的*号示例,具有一定的参考价值,有兴趣的可以了解一下 项目的个人基本信息UI界面效果图如下,有一个红色的*号,并且跟它挨着的文字颜 ...
- python字典没有长度限制_python-字典更新序列元素#0的长度为15; 2个为必填项
我正在将python / django应用程序从1.6.5升级到1.7.我在解决以下错误时遇到麻烦:字典更新序列元素#0的长度为15: 2个为必填项 这是回溯输出: Request Method: G ...
- SAP License:ERP系统会计凭证中的那些必填项
01.凭证日期 凭证日期是必填的,凭证日期填写原始单据的日期. 02.过账日期 过账日期是必填的,凭证正式过账到系统的日期,系统默认凭证记账当日. 03.凭证类型 凭证类型是必填的,在SAP系统中,S ...
- 如何设置dedecms自定义表单必填项?
用dedecms自定义表单可以制作一个简单的预约系统,有些相关信息需要设置为必填项,比如联系方式,没有留下真实的电话或其他信息,以后要怎么联系到你的客户.那我们要如何设置织梦cms自定义表单必填项呢? ...
最新文章
- java设计模式---合成模式2
- maven超级pom内容
- exchange离线整理数据库
- 计算机mac地址里面0,如何查计算机MAC地址
- 好程序员技术文档HTML5开发中的javascript闭包
- mysql 日志 设置 set_MySQL 慢查询日志的开启与配置
- mysql 恢复同步_常见MySQL同步错误恢复方法
- mysql 中的 engine 存储引擎
- LoadRunner测试ajax框架,回放后系统中没有产生数据解决方法
- 查询Mysql的数据架构信息研究
- java版本对应jdk版本_jdk版本对应数字
- apple 苹果官方的demo 下载地址
- java代码混淆(使用 ProGuard maven插件)
- react 截取视频随意一帧裁剪图片存为base64格式
- 【随机过程】笔记和习题分享 第一章 随机过程基本概念
- 简单实用算法——人民币金额大写转换
- IMDB算法(贝叶斯算法)
- oracle php 教程 pdf,AJAX+PHP+Oracle数据库Web开发 ((美)Lee Barney) 中文PDF扫描版 37.5M
- 电大c语言2017年1月,电大1253+C语言程序设计A(1月)小抄参考
- 数组和ArrayList的区别