由于基于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;
}
}

代码执行批量Excel数据导入Oracle数据库的更多相关文章

  1. 批量Excel数据导入Oracle数据库

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

  2. 批量Excel数据导入Oracle数据库 导入excel错误:外部表不是预期的格式 解决方案

    在asp.net网站中导出Excel文件后,再把文件导入到数据库中. 读取Excel文件时,打开连接出错. 错误为:外部表不是预期的格式 解决:检查了一下,导出的Excel是标准文件不是html,没错 ...

  3. 利用TOAD实现把EXCEL数据导入oracle数据库

    利用TOAD实现把EXCEL数据导入oracle数据库 工具:   Toad11.7z(百度搜索,直接下载) 1.将Excel文件中某些字段导入到Oracle数据库的对应表 连接想要导入的数据库 ,然 ...

  4. 使用Plsql将Excel数据导入Oracle数据库

    1.在plsql页面,Tools-->ODBC Importer... 2.配置被导入的excel files 3.选择excel文件 4.选择Excel中要被导入的的sheet工作簿,选择之后 ...

  5. kettle将Excel数据导入oracle

    导读 Excel数据导入Oracle数据库的方法: 1.使用PL SQL 工具附带的功能,效率比较低 可参考这篇文章的介绍:http://www.2cto.com/database/201212/17 ...

  6. c#将Excel数据导入到数据库的实现代码

    这篇文章主要介绍了c#将Excel数据导入到数据库的实现代码,有需要的朋友可以参考一下 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: 代码: 代码如下: using Syste ...

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

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

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

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

  9. Java使用iBatis批量插入数据到Oracle数据库

    Java使用iBatis批量插入数据到Oracle数据库 因为我们的数据跨库(mysql,oracle),单独取数据的话需要遍历好多遍,所以就想着先从mysql数据库中取出来的数据然后在oracle数 ...

随机推荐

  1. 最基础知识 sql之left join、right join、inner join的区别

    sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括 ...

  2. C# 记录循环消耗时间

    今天写了循环段代码,但是感觉好像性能很差的样子,就想看一下整个循环的执行时间,最开始我想到了DateTime.Now,但是诡异的是,如果我循环的次数比较少的话(少于30000次)就会发现2次时间间隔是 ...

  3. thinkphp 快速缓存

    如果你的存储数据没有有效期的需求,那么系统还提供了一个快速缓存方法F可以用来更快的操作. 大理石平台厂家 F方法可以支持不同的存储类型,如果是文件类型的话,默认保存在DATA_PATH目录下面. 快速 ...

  4. php数组长度怎么获取

    我们可以将元素添加到数组或从数组中删除元素,那么如果我们想要知道数组中存在的元素的总长度或总数,我们就可以使用count() 或sizeof函数. 下面我们就通过简单的示例,给大家介绍php获取数组长 ...

  5. 51nod 1627 瞬间移动(组合数学)

    传送门 解题思路 因为每次横纵坐标至少\(+1\),所以可以枚举走的步数,枚举走的步数\(i\)后剩下的就是把\(n-1\)与\(m-1\)划分成\(i\)个有序正整数相加,所以用隔板法,\(ans= ...

  6. Greenplum(PostgreSql)使用 with recursive 实现树形结构递归查询并插入新表

    本代码目的是替代Oracle的connect by语句,并实现后者的path和idleaf功能. 正文开始: 假设表org,字段有 id(编号),name(名称),pid(上级编号), 最上级的记录p ...

  7. Mybatis笔记 – Po映射类型

    一.输入映射类型 parameterType定义输入到sql中的映射类型,可以是  简单类型  .po类对象(可自动生成 或 手动定义). pojo包装对象(用于综合查询,UserCustom用户自定 ...

  8. 20140401 cudaHOG代码

    1.cudaHOG代码(删减没有必要的目录) cudaHOGDetect需要boost库:boost_date_time-vc100-mt-1_40.lib VC++目录->附加库目录D:\bo ...

  9. 厉害了,Spring Cloud Alibaba 发布 GA 版本!

    ? 小马哥 & Josh Long ? 喜欢写一首诗一般的代码,更喜欢和你共同 code review,英雄的相惜,犹如时间沉淀下来的对话,历久方弥新. 相见如故,@杭州. 4 月 18 日, ...

  10. 安装mysql时,服务无法启动的问题

    1.下载mysql镜像文件:mysql-installer-community-8.0.17.0.msi 2.点击镜像进行安装,一直next即可 3.cmd以管理员身份,进入到安装的mysql安装目录 ...