采用的是jxl,所以需要导jxl-2.4.2.jar的jar包.(前提知道excel表的目录):

 

   //用log记录异常信息

    private static final Logger log = LoggerFactory.getLogger(NwcfgdmService.class);

   //采用spring注解方式调用dao层的查询方法  

    @Autowired  
    private CirCuitBoInf cirCuitBo;

public void excelToDb(){
    Workbook rwb=null;
    FileWriter fw = null;
    try {

      //默认的excel路径为D://opt/BOCO/name.xls
      InputStream is=new FileInputStream(new File("D:"+File.separator+"opt"+File.separator+"BOCO"+File.separator+"name.xls"));//读取文件
      rwb=Workbook.getWorkbook(is);
      Sheet rs=rwb.getSheet(0);
      try {

        //同是将数据库插入出现的异常记录在error.text文件上
        fw = new FileWriter("D:"+File.separator+"opt"+File.separator+"BOCO"+File.separator+"error.text",true);
        // 第二个参数 true 表示写入方式是追加方式
      } catch (Exception e) {
        e.printStackTrace();
        log.error("书写异常日志信息失败",e);
      }
      int rsRows=rs.getRows();
      // System.out.println(rsRows);
      int rsClos=rs.getColumns();
      // System.out.println(rsClos+"----");
      // 因为excel的第一行一般都是实体类的属性。所以从i从1开始取,这样就直接能读取数据了
      for(int i=1;i<rsRows;i++){
        for(int j =0;j<rsClos;j++){
        //默认最左边编号也算一列,所以这里是j++

        //时间的格式默认是yyyy/MM/dd,格式可自定义
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
        String id=rs.getCell(j++, i).getContents()+"";
        String name=rs.getCell(j++, i).getContents()+"";

        String end_date = rs.getCell(j++, i).getContents();

         Date end_dates = new Date();
        if(! end_date.equals("")){
        try{
          end_dates = sdf.parse(end_time);
        }catch(ParseException e){
          e.printStackTrace();
          log.error("名字为"+name+"的使用期限的格式不对,格式应该为'yyyy/MM/dd'",e);
          fw.write("名字为"+name+"的使用期限的格式不对,格式应该为'yyyy/MM/dd'"+"\r\n");
        }  
       }
        // 接下来就是把从excel读取到的内容逐个set到Person对象中。然后将对象添加到集合。
        Person c =new Person();
        c.setId(id);
        c.setName(name);
        c.setEnd_date(end_dates);
        try {
          cirCuitBo.addCirCuit(c);
        } catch (UncategorizedSQLException e) {
        e.printStackTrace();
          log.error(c.getName()+"这条数据的某个字段长度超出了数据库定义的最大长度",e);
          fw.write(c.getName()+"这条数据的某个字段长度超出了数据库定义的最大长度"+"\r\n");
          // System.out.println("错误信息:"+e+"---------");
        }catch(DataIntegrityViolationException e){
          e.printStackTrace();
          log.error(c.getName()+"这条数据的时间格式不对",e);
          fw.write(c.getName()+"这条数据的时间格式不对"+"\r\n");
        }catch(Exception e){
          e.printStackTrace();
          log.error(c.getName()+"这条数据插入失败",e);
        }
    }
  }
}
    }catch (FileNotFoundException e) {
      e.printStackTrace();
      log.error("该目录下不存在该文件",e);
    }catch(Exception e){
      e.printStackTrace();
      log.error("读取文件失败,请重新操作",e);
    }finally{
      rwb.close();
    try{
      fw.close();
    }catch (IOException e){
    e.printStackTrace();

    log.error("操作失败",e);
}
}
}

excel表里的数据导入到数据库里的更多相关文章

  1. jsp+servlet上传excel并将数据导入到数据库表的实现方法

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  2. Excel、记事本数据导入到数据库

    将手机号批量导入数据库.思路:先将要导入的文件传上项目里,然后读取文件的每行数据并插入数据库,操作完后再将上传的文件删除 文件示例: Excel: 记事本:   前台代码: <div class ...

  3. sqlserver怎么将excel表的数据导入到数据库中

    在数据库初始阶段,我们有些数据在EXCEL中做好之后,需要将EXCEL对应列名(导入后对应数据库表的字段名),对应sheet(改名为导入数据库之后的表名)导入指定数据库, 相当于导入一张表的整个数据. ...

  4. SQL语句:把Excel文件中数据导入SQL数据库中的方法

    1.从Excel文件中,导入数据到SQL数据库情况一.如果接受数据导入的表不存在 select * into jd$ from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ...

  5. 把excel中的数据导入到数据库

    import.php <?php header("Content-Type:text/html;charset=utf-8"); echo '<html> < ...

  6. 将Excel数据导入mysql数据库的几种方法

    将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面 ...

  7. 用ttBulkCp把excel中的数据导入到timesten数据库中

    最近要做数据预处理,需要用到数据库.而且是以前从来没听说过的TimesTen. 首要目标是要把Excel里的数据,导入到TimesTen数据库中.而TimesTen在win10里用不了,于是我就在虚拟 ...

  8. java实现EXCEL数据导入到数据库中的格式问题的解决

    之前作为项目甲方,加之java接触不多,在java web开发方面都是打下手的份. 对于EXCEL数据导入到数据库这个问题一直老是出现格式原因而导入失败也是未免惆怅,开发团队也是只说回去检查一下格式. ...

  9. 把Excel数据导入到数据库

    引入命名空间 using System.IO; using System.Data; using System.Data.OleDb; 引入命名空间 首先要把Excel上传到服务器 //上传Excel ...

随机推荐

  1. js-分享107个js中的非常实用的小技巧(借鉴保存)

    转载原文:http://***/Show.aspx?id=285 1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:doc ...

  2. 《Play for Java》学习笔记(三)template+Message

    说明: 这是本书的第八章内容,由于项目需要,提到前面来看啦~~~O(∩_∩)O 一.模板template的定义 Play中的模板是html代码和Scala代码的混合而成的,其中Scala代码以@开头, ...

  3. 在浏览器中将表格导入到本地的EXCEL文件,注意控制内存

    if ($export_flag == 1) { $rr = $this->mdl->test($test); header("Content-Type: application ...

  4. 布隆过滤器(Bloom Filter)详解——基于多hash的概率查找思想

    转自:http://www.cnblogs.com/haippy/archive/2012/07/13/2590351.html   布隆过滤器[1](Bloom Filter)是由布隆(Burton ...

  5. 利用电话管理器TelephonyManager获取网络和SIM卡信息

    import java.util.ArrayList;import java.util.HashMap;import java.util.Map; import android.os.Bundle;i ...

  6. C-指针和数组的区别

    指针的操作: 允许:1)同类型指针的赋值 2)与整形的加减运算 3)指向同一数组内指针的减运算和比较 4)赋 ‘0’ 或与 ‘0’ 比较 不允许:1)两指针的相加,相乘除,位移或mask 2)与flo ...

  7. Rhel6-mailsystem配置文档

    (postfix+dovecot+mysql+extmail) 理论基础:

  8. 深入剖析HADOOP程序日志

    深入剖析HADOOP程序日志 前提 本文来自于 博客园 逖靖寒的世界 http://gpcuster.cnblogs.com 了解log4j的使用. 正文 本文来自于 博客园 逖靖寒的世界 http: ...

  9. 从github上面拷贝源码

    http://www.cnblogs.com/xing901022/p/4287064.html

  10. android 经典下雨效果

    英文原文地址:https://blog.stylingandroid.com/snowfall/ 中文翻译地址:http://www.open-open.com/lib/view/open145226 ...