代码执行批量Excel数据导入Oracle数据库

由于基于Oracle数据库上做开发,因此常常会需要把大量的Excel数据导入到Oracle数据库中,其实如果从事SqlServer数据库的开发,那么思路也是一样的,本文主要介绍如何导入Excel数据进入Oracle数据库的内容。

方法一:

1.准备数据:在excel中构造出需要的数据
2.将excel中的数据另存为文本文件(有制表符分隔的)
3.将新保存到文本文件中的数据导入到pl*sql中
在pl*sql中选择tools--text importer,在出现的窗口中选择Data from Textfile,然后再选择Open data file,
在弹出的文件选择框中选中保存有数据的文本文件,此时将会看到data from textfile中显示将要导入的数据
4.在configuration中进行如下配置
注:如果不将Name in header勾选上会导致字段名也当做记录被导入到数据库中,从而导致数据错误
5.点击data to oracle,选择将要导入数据的表,并在fields中将文本中的字段与表中的字段进行关联
6.点击import按钮进行导入
7.查看导入的数据
OK,至此数据导入成功。
 
 
方法二:
 String fileName = "F:\\xx.xls";  //"F:\\document/test/aa.xls";
 
 public static void createBusinessFinish(String fileName) {
        
        try {
            //申办
            EntitySet<laam_ex_sb> sbSet = getExcelSBdata(fileName);
            List<laam_ex_sb> sblist = null;
            if (sbSet != null) {
                sblist = sbSet.getResult();
                for (int i = 0; i < sblist.size(); i++) {
                    laam_ex_sb sb = sblist.get(i);
                    sb.setID(Global.getInstance().GetUUID());
                    String sbStr = Global.getInstance().getSerializService().Serialize(sb);
                    EntityBean bean = (EntityBean) Global.getInstance().getSerializService().DeSerialize(sbStr, EntityBean.class);
                    bean.setbeanname("laam_ex_sb");
                    bean.insert();
                }
            }
    }

public static EntitySet<laam_ex_sb> getExcelSBdata (String fileName)
    {
        try
        {
            //直接从本地文件创建Workbook   
            FileInputStream instream = new FileInputStream(File.get(fileName));
            HSSFWorkbook hssfworkbook = new HSSFWorkbook(instream);
            HSSFSheet hssfsheet = hssfworkbook.getSheetAt(0);//第一个工作表
            //Map<String, Object> map = new HashMap<String, Object>();
            EntitySet<laam_ex_sb> beanSet = new EntitySet<laam_ex_sb>();

            String busino = null;
            String sblsh = null;
            String sbwd = null;
            //遍历该行所有的行,j表示行数, getPhysicalNumberOfRows行的总数  
            ArrayList<laam_ex_sb> list = new ArrayList<laam_ex_sb>();//创建List 集合  
            laam_ex_sb entity = null;
            Row row = null;
            int rows = hssfsheet.getPhysicalNumberOfRows(); //总行数
            for (int j = 1; j < rows; j++)
            {
                entity = new laam_ex_sb();
                row = hssfsheet.getRow(j); //获取行数据对象(0是表头)
                if ( row == null )
                {
                    System.out.println("提示:\n" + (j + 1) + " 行没有数据。\n");
                    break;
                }
                /** */
                /**将EXCEL中的第 j 行,第一列的值插入到实例中*/
                //获取每一行的列   
                int k = 0;
                //事项名称
                if ( row.getCell(k) == null )
                {
                    entity.setSxmc("");
                }
                else
                {
                    entity.setSxmc(row.getCell(k).getStringCellValue().trim());
                    if ( j == 1 )
                    {
                        sxmc = row.getCell(k).getStringCellValue().trim();
                    }
                }
                k++;
                //申请人类型
                if ( row.getCell(k) == null )
                {
                    entity.setSqrlx("1");
                }
                else
                {
                    try {
                        entity.setSqrlx(Math.round(row.getCell(k).getNumericCellValue()) + "");    
                    } catch (Exception e) {
                        entity.setSqrlx(row.getCell(k).getStringCellValue().trim());
                    }
                    
                }
                k++;
                //申请人名称
                if ( row.getCell(k) == null )
                {
                    entity.setSqrmc("");
                }
                else
                {
                    try {
                        entity.setSqrmc(row.getCell(k).getStringCellValue().trim());
                    } catch (Exception e) {
                        entity.setSqrmc(Math.round(row.getCell(k).getNumericCellValue()) + "");    
                    }
                    
                }
                k++;
                //申请人证件号码
                if ( row.getCell(k) == null )
                {
                    entity.setSqrzjhm("");
                }
                else
                {
                    String card = null;
                    try
                    {
                        card = row.getCell(k).getStringCellValue().trim();
                    }
                    catch (Exception e)
                    {
                        card = Math.round(row.getCell(k).getNumericCellValue()) + "";
                    }
                    finally
                    {
                        String c = new NSgetProcessData().getRandomID();
                       
                        if ( card == null || "".equals(card) || card.length() < 15 )
                        {
                            card = c;//得到一个随机的身份证号码
                        }
                        entity.setSqrzjhm(card);
                    }
                }
                k++;
                //联系人姓名
                if ( row.getCell(k) == null )
                {
                    entity.setLxrxm("");
                }
                else
                {
                    try {
                        entity.setLxrxm(row.getCell(k).getStringCellValue().trim());
                    } catch (Exception e) {
                        entity.setLxrxm(Math.round(row.getCell(k).getNumericCellValue()) + "");
                    }
                    
                }
                k++;
                //联系人手机
                if ( row.getCell(k) == null )
                {
                    entity.setLxrsj(new NSgetProcessData().getPhone());
                }
                else
                {
                    String phone = null;
                    try {
                        phone = Math.round(row.getCell(k).getNumericCellValue()) + "";
                    } catch (Exception e) {
                        phone = row.getCell(k).getStringCellValue().trim();
                    }finally{
                        if ( phone == null || "".equals(phone)|| phone.length()<8|| phone.length()>11)
                        {
                            phone = new NSgetProcessData().getPhone();//得到一个随机的手机号码
                        }
                        entity.setLxrsj(phone);
                    } 
                }
                k++;
                //申办项目名称
                if ( row.getCell(k) == null )
                {
                    entity.setSbxmmc("");
                }
                else
                {
                    try {
                         entity.setSbxmmc(row.getCell(k).getStringCellValue().trim());
                    } catch (Exception e) {
                         entity.setSbxmmc(Math.round(row.getCell(k).getNumericCellValue()) + "");
                    }
                   
                }
                k++;
                //申办材料清单
                if ( row.getCell(k) == null )
                {
                    entity.setSbclqd("无需提交材料");
                }
                else
                {
                    try {
                        entity.setSbclqd(row.getCell(k).getStringCellValue().trim());
                    } catch (Exception e) {
                        entity.setSbclqd(Math.round(row.getCell(k).getNumericCellValue()) + "");
                    }
                    
                }
                k++;
                //提交方式
                if ( row.getCell(k) == null )
                {
                    entity.setTjfs("1");
                }
                else
                {
                    try {
                        entity.setTjfs(Math.round(row.getCell(k).getNumericCellValue()) + "");
                    } catch (Exception e) {
                        entity.setTjfs(row.getCell(k).getStringCellValue().trim());
                    }
                    
                }
                k++;
                //申办时间
                if ( row.getCell(k) == null )
                {
                    entity.setSbsj("2014-07-05 09:30:24");
                }
                else
                {

                    String year = row.getCell(k).getDateCellValue().getYear() + 1900 + "";
                    int mon = row.getCell(k).getDateCellValue().getMonth() + 1;
                    String month = mon < 10 ? "0" + mon : mon + "";
                    int d = row.getCell(k).getDateCellValue().getDate();
                    String day = d < 10 ? "0" + d : d + "";
                    Random rd = new Random();
                    String hour = "";
                    if (sxmc.contains("社会投资项目备案") || sxmc.contains("接收高校应届毕业生")) { //当为即办件的时候
                        String[] number = { "09", "10"};
                        hour = number[rd.nextInt(number.length)];
                    }else
                    {
                        String[] number = { "09", "10", "11", "12", "13", "14", "15", "16", "17" };
                        hour = number[rd.nextInt(number.length)];
                    }
                    int m = rd.nextInt(60);
                    String minite = m < 10 ? "0" + m : m + "";
                    int s = rd.nextInt(60);
                    String secend = s < 10 ? "0" + s : s + "";
                    String timer =year + "-" + month + "-" + day + " " + hour + ":" + minite + ":" + secend;
                    entity.setSbsj(timer);
                }
                if ( j == 1 )
                {
                    EntityBean result = Global.getInstance().getDataSource().beanExecuteFirstRow("select busino,businame,"+ "(select dirname from laambusinessdir where id=laambusiness.dirid)||'网上窗口' deptname from laambusiness where businame='"
                                                    + sxmc + "'");
                    busino = result.getString("busino");
                    sbwd = result.getString("deptname");
                    //busiService bService = new busiService();
                 }
                String prefix = busino.substring(0, 19);

                sblsh = GlobalSNService.getSN("lgbsShenbanLiushuiHao", "{date:yyMMdd}{sn:xxxx}", prefix==null?"A":prefix, null,    1, null, new Date());

                entity.setSblsh(sblsh); //申办流水号
                entity.setSxbm(busino); //事项编码
                entity.setSbjtwd(sbwd); //申办具体网点
                entity.setXzqhdm("440305"); //业务发生所在地行政区划代码 
                entity.setSbhzh(sblsh); //申办回执号

                list.add(entity);
            }

            int z = hssfsheet.getPhysicalNumberOfRows();
            int nextLine = list.size() + 1;
            if ( list.size() < z - 1 )
            {
                System.out.println("导入提示:\n" + "成功导入" + list.size() + "条数据,请根据提示检查第:" + nextLine + "行数据");
            }
            else
            {
                System.out.println("导入提示:\n" + "成功导入" + list.size() + "条数据");
            }
            beanSet.setResult(list);
            return beanSet;
        }
        catch (Exception e)
        {
            Global.getInstance().LogError(e);
            return null;
        }
    }

 

posted @ 2014-08-08 14:35  盗梦笔记  阅读(2693)  评论(0编辑  收藏  举报