在Excel导入过程中经常遇到单元格数据格式不正确引发的错误,在赋值前需要做下类型转换。

提供一个类型转换工具类:

 /**
* 单元格类型转化工具类
* @param cell
* @return
*/
private Map<String,Object> cellTypeDefine(Cell cell){
Map<String,Object> map = new HashMap<>();
switch (cell.getCellType()) {
case Cell.CELL_TYPE_BOOLEAN:
map.put("COL", cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_NUMERIC:
map.put("COL", cell.getNumericCellValue());
break;
case Cell.CELL_TYPE_STRING:
map.put("COL", cell.getStringCellValue());
break;
case Cell.CELL_TYPE_BLANK:
map.put("COL","");
break;
case Cell.CELL_TYPE_FORMULA:
map.put("COL", cell.getCellFormula());
break;
case Cell.CELL_TYPE_ERROR:
map.put("COL","");
break;
default:
map.put("COL", "");
break;
}
return map;
}

类型转换

Excel导入demo实例:

 public class ExcelImport {

     public String excelImport(File file) {
HashMap<String, Sheet> typeSheet = null;
List<CmWiringPo> wiringlist = new ArrayList<>();
try{
HSSFWorkbook workbook = new HSSFWorkbook() ;
typeSheet = Maps.newHashMap();
Cell cell = null;
Row row = null;
HSSFSheet sheet = workbook.getSheetAt(0);
String sheetName = sheet.getSheetName();
typeSheet.put(sheetName, sheet); for(int j=1;j < sheet.getLastRowNum()+1;j++){
row = sheet.getRow(j);
CmWiringPo cmWiringPo = new CmWiringPo() ;
//主键生成
cmWiringPo.setId(11L);
for(int k=0;k < row.getLastCellNum();k++){
cell = row.getCell(k);
switch (k) {
case 0:
Long srid = (long)cell.getNumericCellValue();
cmWiringPo.setSrid(srid);
break;
case 1:
cmWiringPo.setSourceCabinetUName(String.valueOf(cellTypeDefine(cell).get("COL")));
break; default:
break;
}
}
} }catch (Exception e) { return null;
}
return wiringlist.toString();
}

excel导入及注意事项的更多相关文章

  1. Silverlight将Excel导入到SQLserver数据库

    最近纠结于读取Excel模板数据,将数据导入SQLServer的Silverlight实现,本文将实现代码贴出,作为一个简单的例子,方便各位: 1.先设计前台界面新建Silverlight5.0应用程 ...

  2. 用Excel导入Oracle数据库plsql

    打开plsql之后,在工具栏点击[tools]--[ODBC Imoprter] 选择导入文件的类型,这里是excel文件,所以选择Excel Files 输入连接数据库的用户名和密码 点击Conne ...

  3. 土制Excel导入导出及相关问题探讨

    转载请注明出处https://www.cnblogs.com/funnyzpc/p/10392085.html 新的一年,又一个开始,不见收获,却见年龄,好一个猪年,待我先来一首里尔克的诗: < ...

  4. JXLS (Excel导入、导出工具使用)

    JXLS (Excel导入.导出工具使用) 1:简介: jxls是一个简单的.轻量级的excel导出库,使用特定的标记在excel模板文件中来定义输出格式和布局.java中成熟的excel导出工具有p ...

  5. Excel导入保存附件和解析数据

    Excel导入保存附件和解析数据 一,前端上传附件的组件 1.先给一个下载模板的按钮 // 下载Excel模板 downLoadExcel: function () { window.open(GLO ...

  6. C# Excel导入、导出【源码下载】

    本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...

  7. ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入

    系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...

  8. 解析大型.NET ERP系统 设计通用Microsoft Excel导入功能

    做企业管理软件很难避免与Microsoft Excel打交道,常常是软件做好了,客户要求说再做一个Excel导入功能.导入Excel数据的功能的难度不大,从Excel列数据栏位的取值,验证值,再导入到 ...

  9. (转)高效的将excel导入sqlserver中

    大部分人都知道用oledb来读取数据到dataset,但是读取之后怎么处理dataset就千奇百怪了.很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,System.Data.SqlClie ...

随机推荐

  1. 装饰器python

    装饰器 你是一家视频网站的后端开发工程师,你们网站有以下几个版块 1 2 3 4 5 6 7 8 9 10 11 def home():     print("---首页----" ...

  2. JMS学习(三)ActiveMQ Message Persistence

    1,JMS规范支持两种类型的消息传递:persistent and non-persistent.ActiveMQ在支持这两种类型的传递方式时,还支持消息的恢复.中间状态的消息(message are ...

  3. git 学习小记之记住https方式推送密码

    昨天刚刚学了点git基础操作,但是不幸的是Git@OSC给出公告说尽量使用 https 进行操作.可是在用 https 进行 push 时,都需要输入帐号和密码. 各种百度谷歌之后在Git@OSC官网 ...

  4. jQuery中Animate进阶用法(二)

    Step Type: Function( Number now, Tween tween )每个动画元素的每个动画属性将调用的函数.这个函数为修改Tween 对象提供了一个机会来改变设置中得属性值. ...

  5. css左右等高问题

    先看看预览效果:http://lgdy.whut.edu.cn/index.php?c=home&a=detail&id=3394 再来谈谈css左右等高的应用场景:在内容管理系统(c ...

  6. AngularJS入门基础——过滤器

    在HTML中的模板绑定符号{{ }}内通过 | 符号来调用过滤器 {{ name | uppercase }}   以HTML的形式使用过滤器时,如果需要传递参数给过滤器,只要在过滤器名字后面加冒号即 ...

  7. 日期控件-my97DatePicker用法

    网上资料,用法,只能选最近30天等等:http://jingyan.baidu.com/article/e6c8503c7244bae54f1a18c7.html

  8. 02 uni-app框架学习:设置全局样式统一每个页面的背景颜色

    1.设置全局样式可以在App.vue里面 2.在每个页面的根view 里添加一个class名叫page

  9. vue路由DEMO

    index.js,index.vue,course.vue,master.vue等 import Vue from 'vue' import Router from 'vue-router' impo ...

  10. 内存对齐与ANSI C中struct型数据的内存布局 【转】

    转自:http://blog.chinaunix.net/uid-25909619-id-3032209.html 当在C中定义了一个结构类型时,它的大小是否等于各字段(field)大小之和?编译器将 ...