excel表格导入数据库数据存在则更新不存在添加
public void excelToDB() throws ParseException {
String datapath = this.getParameter("datapath");
String filePath = AppUtil.getAppAbsolutePath()+datapath;
Workbook rwb = null;
try {
// 创建输入流
InputStream stream = new FileInputStream(filePath);
// 获取Excel文件对象
rwb = Workbook.getWorkbook(stream);
} catch (Exception e) {
e.printStackTrace();
}//导入文件
Sheet rs = rwb.getSheet();//表
int rows = rs.getRows();//得到所有的行
for(int i=;i<rows;i++) {
Map<String,Object> map = null;
//如果busreqno,entno为空则添加
String busregno = rs.getCell(,i).getContents();
String entno = rs.getCell(,i).getContents();
map = yksptBuildManager.getEntityDao().findObjectBySql("sql查询语句",busregno);
if(map == null && !"".equals(entno) && entno!= null) {
map = yksptBuildManager.getEntityDao().findObjectBySql("sql查询语句",entno);
}
if(map == null) {
map = new HashMap<String,Object>();
}
//没查到就插入数据库
所导入实体类 entity = new 所导入的实体类();
boolean flag = false;
if(map.size() != ) {
entity = yksptBuildManager.getEntityDao().getById((String)map.get("所导入表id"));
flag = true;
}
entity.setBname(rs.getCell(,i).getContents());
entity.setBaddress(rs.getCell(,i).getContents());
entity.setOnesitekey(rs.getCell(,i).getContents());
entity.setTwositekey(rs.getCell(,i).getContents());
//根据下标获取excle表中经度纬度,取逗号前0后1
String s=rs.getCell(,i).getContents();
String[] ss=s.split(",");
if(!"".equals(s) && s!= null) {
entity.setCoordinatesx (ss[]);
entity.setCoordinatesy(ss[]);
}
if(!"".equals(rs.getCell(,i).getContents())&& rs.getCell(,i).getContents()!=null) {//根据excle表内数据匹配后台相对应状态,001,,002,003~~存入库内
entity.setBstreet(this.sysDictionaryManager.findDictNameByGroupkeyAndHvalue("ykspt.street",rs.getCell(,i).getContents()));
}
entity.setManage(rs.getCell(,i).getContents());
entity.setBtype(rs.getCell(,i).getContents());
entity.setWorkstation(rs.getCell(,i).getContents());
entity.setBuiltuparea(rs.getCell(,i).getContents());
entity.setUpperarea(rs.getCell(,i).getContents());
entity.setSparearea(rs.getCell(,i).getContents());
entity.setPropertyunit(rs.getCell(,i).getContents());
if(flag) {
//更新数据库
this.yksptBuildManager.update(entity);
}else {
//插入数据
this.yksptBuildManager.save(entity);
}
System.out.println(i);
}
}
2.固定路径!(路径写死)
Workbook rwb = null;
InputStream stream=null;
try {
// 创建输入流
stream = new FileInputStream("D:\\002.xls");
rwb = Workbook.getWorkbook(stream);
// 获取Excel文件对象
} catch (Exception e) {
e.printStackTrace();
}//导入文件
Sheet rs = rwb.getSheet();//表
int rows = rs.getRows();//得到所有的行
excel表格导入数据库数据存在则更新不存在添加的更多相关文章
- java实现excel表格导入数据库表
导入excel就是一个上传excel文件,然后获取excel文件数据,然后处理数据并插入到数据库的过程 一.上传excel 前端jsp页面,我的是index.jsp 在页面中我自己加入了一个下载上传文 ...
- C#解决从含身份证号码的Excel表格导入数据库的问题
用C#做从Excel表导入SQL数据库时发现从EXCEL导入的身份证号码会变成科学表示方法. 解决这个问题是比较容易的,首先,打开电子表格,选中“身份证号码”一列,右键选择“设置单元格格式”,进入单元 ...
- C#代码实现 Excel表格与Object互相转换,Excel表格导入数据库(.NET2.0 .NET4.0)
前些天在工作上遇到这个需求,在GitHub找到一个开源代码可以用,Fork了一个版本,整理一下发出来. ①.Net项目中使用Nuget安装一个 NPOI 包 https://github.com ...
- Django上传excel表格并将数据写入数据库
前言: 最近公司领导要统计技术部门在各个业务条线花费的工时百分比,而 jira 当前的 Tempo 插件只能统计个人工时.于是就写了个报表工具,将 jira 中导出的个人工时excel表格 导入数据库 ...
- Excel表格导入Mysql数据库,一行存入多条数据的前后台完整实现思路(使用mybatis框架)
现在有一张Excel表格: 存入数据库时需要这样存放: 现在需要将Excel表格做处理,将每一行拆分成多条数据存入数据库. 1.首先在前台jsp页面画一个按钮:,加入点击事件: <td styl ...
- 怎么把excel表格内的数据导入数据库?
第一种方法: 思路:想要把excel表格内的数据直接导入数据库不是那么容易,可以把excel表格另存为.csv格式的文档(特点:内容以逗号分割):然后通过一系列的文档操作函数处理成为一个二维数组,然后 ...
- 使用Excel表格导入数据到Oracle表
在工作中我们会遇到将通过数据手动录入到系统中的需求,如果数据量比较小,那么手动输入是可行的,倘若数据量很大,那么这些数据手动录入将会是一个很大的工作量,为了简化这个手动录入的操作流程,我们可以使用Ex ...
- 利用java反射机制实现读取excel表格中的数据
如果直接把excel表格中的数据导入数据库,首先应该将excel中的数据读取出来. 为了实现代码重用,所以使用了Object,而最终的结果是要获取一个list如List<User>.Lis ...
- python读取excel表格中的数据
使用python语言实现Excel 表格中的数据读取,需要用到xlrd.py模块,实现程序如下: import xlrd #导入xlrd模块 class ExcelData(): def __init ...
随机推荐
- 洛谷P3676 小清新数据结构题 [动态点分治]
传送门 思路 这思路好妙啊! 首先很多人都会想到推式子之后树链剖分+线段树,但这样不够优美,不喜欢. 脑洞大开想到这样一个式子: \[ \sum_{x} sum_x(All-sum_x) \] 其中\ ...
- idea 去除xml文件sql语句背景色
怎么看idea mapper.xml中写sql语句的那种屎黄屎黄背景颜色不好看 去除背景色 把这两项勾选去掉,然后 把这个背景勾选也去掉,最后 把这个勾选也去掉 另一种方式: 也可以使用这种方式 al ...
- Java的MVC模式简介
Java的MVC模式简介 MVC(Model View Control)模型-视图-控制器 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件 ...
- jquery easyui datagrid 加每页合计和总合计
jquery easyui datagrid 加每页合计和总合计 一:效果图 二:代码实现 这个只有从后台来处理 后台根据rows 和page两个参数返回的datatable 命名为dt 然后根据dt ...
- Confluence 6 协同编辑问题解决
协同编辑是 Synchrony 提供的,用于在编辑的时候实时同步.在一般的情况下,这个进程是不需要 Confluence 的管理员进行手动管理的. 这个页面将会帮助你 Confluence 安装实例中 ...
- 【python】打印函数调用栈
traceback.print_stack()
- python 内置数据类型之数字
目录: 1.2. 数字 1.2.1. 数字类型 1.2.2. 浮点数 1.2.3. 进制记数 1.2.4. 设置小数精度 1.2.5. 分数 1.2.6. 除法 1.2 数字 1.2.1 数字类型 ...
- 饮冰三年-人工智能-Python-11之HelloWorld
1:安装不在介绍,下载软件下一步即可,配置环境变量(Python37会默认配置环境变量的) D:\Programs\Python\Python37\Scripts\;D:\Programs\Pytho ...
- Lua中,泛型for循环遍历table时,ipairs和pairs的区别
为了看出两者的区别,首先定义一个table: a={"Hello","World";a=1,b=2,z=3,x=10,y=20;"Good" ...
- 复习reactnative....
import React, { Component } from 'react'; import { AppRegistry, Text, Image, View, TextInput, Scroll ...