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 ...
随机推荐
- STM32L476应用开发之三:串行通讯实验
在我们的项目需求中,有两个串口应用需求,一个是与炭氢传感器的通讯,另一个是与显示屏的通讯.鉴于此,我们需要实验串行通讯. 1.硬件设计 串行通讯一个采用RS232接口,另一个直接采用TTL方式.我们在 ...
- HTML5从入门到精通(明日科技) 中文pdf扫描版
HTML5从入门到精通(明日科技) 中文pdf扫描版
- Confluence 6 导入一个文本文件
Confluence 允许你从 Confluence 服务器上的一个目录中导入一个文本文件,然后将这个文本文件转换为 Confluence 的页面.每一个文本文件将会在 Confluence 中创建一 ...
- ionic3 git 提交报错
npm ERR! cordova-plugin-camera@ gen-docs: `jsdoc2md --template "jsdoc2md/TEMPLATE.md" &quo ...
- 《剑指offer》斐波那契数列
本题来自<剑指offer> 斐波那契数列 矩阵覆盖 题目一: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0).n<=39 思路: ...
- typeof操作符--undefined与null
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>ty ...
- 步步为营-94-GridView中的DropDownlist值得获取与绑定
bug场景: 例如这种"计税方式"是下拉列表的,当选择"编辑"时候,数据会丢失 修改方式,前台对应修改 后台代码在databound时候给绑定值 测试效果
- pycaffe训练的完整组件示例
pycaffe训练的完整组件示例 为什么写这篇博客 1. 需要用到pycaffe 因为用到的开源代码基于Caffe:要维护的项目基于Caffe.基本上是用Caffe的Python接口. 2. 训练中想 ...
- WCF 配置App.Config
<system.serviceModel> <bindings> <basicHttpBinding> <binding name="/> & ...
- Notepad++文件自动更新