在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. DCT变换、DCT反变换、分块DCT变换

    一.引言 DCT变换的全称是离散余弦变换(Discrete Cosine Transform),主要用于将数据或图像的压缩,能够将空域的信号转换到频域上,具有良好的去相关性的性能.DCT变换本身是无损 ...

  2. 成员变量与局部变量的区别--------java基础总结

  3. java生成扑克牌----java基础学习总结

    前言都懒的写了,都凌晨1点半了,直接把代码放上去 代码: package com.day16.list; import java.util.LinkedList; import java.util.R ...

  4. python自带的IDLE如何清屏

    作者:知乎用户 链接:https://www.zhihu.com/question/20917976/answer/32876441 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  5. AngularJs分层结构小demo

    后端mvc分层,前端也要分层才对嘛.分层的好处不言而喻.简直太清晰,容易维护.反正清爽的一逼.不信你看. 思路:分为controller层和service层.controller层再提取一个公共的层. ...

  6. POJ - 2240 Arbitrage(Bellman-Ford)

    https://vjudge.net/problem/POJ-2240 题意 已知n种货币,以及m种货币汇率及方式,问能否通过货币转换,使得财富增加. 分析 Bellman-Ford判断正环,注意初始 ...

  7. 浅说Get请求和Post请求

    Web 上最常用的两种 Http 请求就是 Get 请求和 Post 请求了.我们在做 java web 开发时,也总会在 servlet 中通过 doGet 和 doPost 方法来处理请求:更经常 ...

  8. CentOS 无法通过 yum 安装新版 nodejs 解决办法(安装的还是老版的)

    官网安装说明:CentOS 安装 nodejs 第一步: curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo b ...

  9. source insigh安装使用

    下载和安装: 最好去官网下载(http://www.sourceinsight.com/),最新版本是3.5. 第一次去六维下载了sourceinsight,免安装,但是打开后发现界面没有任何窗口,全 ...

  10. 【Python】【持续项目】Python-安全项目搜集

    1.前言 Python发展以来,除了web安全方向,二进制方向也早已经积累有很多用Python写的项目.作为搜集者当然不能错过! 2.项目分类 安全编程 多功能Python键盘记录工具:Radium ...