代码执行批量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;
}
}
代码执行批量Excel数据导入Oracle数据库的更多相关文章
- 批量Excel数据导入Oracle数据库
由于一直基于Oracle数据库上做开发,因此常常会需要把大量的Excel数据导入到Oracle数据库中,其实如果从事SqlServer数据库的开发,那么思路也是一样的,本文主要介绍如何导入Excel数 ...
- 批量Excel数据导入Oracle数据库 导入excel错误:外部表不是预期的格式 解决方案
在asp.net网站中导出Excel文件后,再把文件导入到数据库中. 读取Excel文件时,打开连接出错. 错误为:外部表不是预期的格式 解决:检查了一下,导出的Excel是标准文件不是html,没错 ...
- 利用TOAD实现把EXCEL数据导入oracle数据库
利用TOAD实现把EXCEL数据导入oracle数据库 工具: Toad11.7z(百度搜索,直接下载) 1.将Excel文件中某些字段导入到Oracle数据库的对应表 连接想要导入的数据库 ,然 ...
- 使用Plsql将Excel数据导入Oracle数据库
1.在plsql页面,Tools-->ODBC Importer... 2.配置被导入的excel files 3.选择excel文件 4.选择Excel中要被导入的的sheet工作簿,选择之后 ...
- kettle将Excel数据导入oracle
导读 Excel数据导入Oracle数据库的方法: 1.使用PL SQL 工具附带的功能,效率比较低 可参考这篇文章的介绍:http://www.2cto.com/database/201212/17 ...
- c#将Excel数据导入到数据库的实现代码
这篇文章主要介绍了c#将Excel数据导入到数据库的实现代码,有需要的朋友可以参考一下 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: 代码: 代码如下: using Syste ...
- 将Excel数据导入mysql数据库的几种方法
将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面 ...
- java实现EXCEL数据导入到数据库中的格式问题的解决
之前作为项目甲方,加之java接触不多,在java web开发方面都是打下手的份. 对于EXCEL数据导入到数据库这个问题一直老是出现格式原因而导入失败也是未免惆怅,开发团队也是只说回去检查一下格式. ...
- Java使用iBatis批量插入数据到Oracle数据库
Java使用iBatis批量插入数据到Oracle数据库 因为我们的数据跨库(mysql,oracle),单独取数据的话需要遍历好多遍,所以就想着先从mysql数据库中取出来的数据然后在oracle数 ...
随机推荐
- vue 过滤器filter的详解
1.代码运用的地方 <!-- 在双花括号中 --> {{ date | formatDate}} <!-- 在 `v-bind` 中 --> <div v-bind:id ...
- 提供免费可商用的优秀背景视频素材——COVERR
现在经常看到很多网站都是贴近更现代化的设计,首页都会放置跟网站内容相关的视频短片作为背景,不用按下播放按钮,就有动态显示效果,跟以往静态图片相较下更动态.更有活力,对网站的视觉体验有一定的提升作用.但 ...
- 在KVM虚拟化中如何实现vlan
换了好几个浏览器,都不能复制文字上来,不知道为什么.就发我的笔记截图吧
- CentOS 7 編譯qBittorrent Web UI安裝指南
前言 以下是安装qBittorrent教学. 适用于CentOS7或更新版本 适用于qBittorrent4.1.5或更新版本 安裝須知 qBittorrent基于libtorrent,所以必须先安装 ...
- DOM 对象和jQuery对象的转换
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- .nett Core之路由配置
//配置路由 app.UseMvc(buider => { buider.MapRoute("Default", "{controller=home}/{actio ...
- [Grt]一篇简单概括XML
一.XML基础 XML主要用途(我认为就这三点): XML 把数据从 HTML 分离 XML 简化数据共享 XML 简化数据传输 XML 语法规则: XML 文档必须有根元素 XML 文档必须有关闭标 ...
- prop不同数据类型设置默认值
vue prop 会接收不同的数据类型,这里列出了 常用的数据类型的设置默认值的写法,其中包含: Number, String, Boolean, Array, Function, Object ...
- Oracle sql判断一个字段是否全数字 或含有中文
update (select length(t.name), t.* -- name,length(name) from g_enterprise_info t where nvl2(translat ...
- ECMAScript1.2 表达式|语句|break|continue
表达式 一个表达式可以产生一个值,有可能是运算,函数调用, 有可能是字面量,表达式可以放在任何需要值的地方. 语句 语句可以理解为一个行为,循环语句和判断语句就是典型的语句. 一个程序有很多个语句组成 ...