由于基于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. C# 编译生成 产生多余的语言包删除"de" "en" "es" "fr" "hu" "it" "ja" "ko" "pr-br" "ro" "pt-br" "ru" "sv" "zh-hans" "zh-hant&qu

    VS生成事件 rd /s /q "de" "en" "es" "fr" "hu" "it& ...

  2. Android SDK中无法安装HAXM installer

    一.原因: 刚搭建好环境,当我想打开Android Studio 自带的模拟器时,出现如下:       /dev/kvm is not found 二.解决步骤: 1.点击File -- Setti ...

  3. MySQL高可用配置(主从复制)

    主从复制包含两个步骤: 在 master 主服务器(组)上的设置,以及在 slave 从属服务器(组)上的设置. 环境: MASTER: 192.168.155.101SLAVE: 192.168.1 ...

  4. Class类的作用?生成Class对象的方法有哪些?

    Class类是Java 反射机制的起源和入口,用于获取与类相关的各种信息,提供了获取类信息的相关方法.Class类继承自Object类 Class类是所有类的共同的图纸.每个类有自己的对象,好比图纸和 ...

  5. nodejs 模板引擎ejs的简单使用(2)

    test.ejs <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

  6. 50. Set接口和Set的实现类HashSet

    集合分类:-------------------| Collection 单列集合的根接口   ---------------| List 如果实现了List接口的集合类,具备的特点是:有序,可重复- ...

  7. leetcode-159周赛-5232-替换子串得到平衡字符串*

    题目描述: 方法: 另: class Solution: def balancedString(self, s: str) -> int: n, req = len(s), len(s) // ...

  8. leetcode-132-分割回文串②*

    题目描述: 方法一:动态规划 class Solution: def minCut(self, s: str) -> int: min_s = list(range(len(s))) n = l ...

  9. leetcood学习笔记-54-螺旋矩阵

    题目描述: 第一次提交: class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: j,x = 0 ...

  10. R语言 环境设置

    尝试在线环境 你真的不需要设置自己的环境来开始学习R编程语言. 原因很简单,我们已经在线设置了R编程环境,以便您可以在进行理论工作的同时在线编译和执行所有可用的示例. 这给你对你正在阅读的信心,并用不 ...