在JSP中将EXEL文件的数据传入到数据库中
在jsp中:
在script中使用函数:
$(function(){ //var lpyear = document.getElementById("lpyear").value;
//var lpmonth = document.getElementById("lpmonth").value;
//var factoryid = document.getElementById("factoryid").value;
//var url = "&lpyear="+lpyear+"&factoryid="+factoryid+"&lpmonth="+lpmonth;
$("#file").uploadify({
"height" : 19,
"buttonText" : "导入本月数据",
"buttonClass" : "btn",
"fileTypeDesc" : "Excel Files",
"fileTypeExts" : "*.xls",
"swf" : <select:link page="/Charts/uploadify.swf" />,
"uploader" : <select:link page="/Budgetimp.do?method=monthimp" />,//+url,
"onUploadStart" : function(file){
showWait("正在上传"+file.name+",请稍候...");
},
"onUploadSuccess" : function(file, data, response) {
$('#' + file.id).find('.data').html(' 上传完毕');
hideWait();
},
"onQueueComplete" : function(queueData) {
show();
}
});
});
在body中写入:
<td style="text-align: center;width: 150px;padding-bottom: 1px;">
<input type="file" name="file" id="file">
</td>
在Java中:
//导入本月数据
@SuppressWarnings("unchecked")
public void monthimp(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
try { InputStream is = null;
Workbook workbook = null;//创建Workbook对象(这一个对象代表着对应的一个Excel文件) List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for(FileItem item:items){
if (item.isFormField()){
request.setAttribute(item.getFieldName(), item.getString());
}else{
is = item.getInputStream();
workbook = Workbook.getWorkbook(is);
}
} if(workbook != null){
Sheet sheet = workbook.getSheet(0);//创建Sheet对象,代表着一个工作表
int row = sheet.getRows();///获取行数
ArrayList<String> sqls = new ArrayList<String>();
for(int i=0;i<row;i++){
String year="",month="",factoryid="",feename="",monthqty="",countqty="",tqqty=""; //year=request.getParameter("lpyear");
//month=request.getParameter("lpmonth");
//factoryid=request.getParameter("factoryid");
Cell cell = sheet.getCell(0, i);//获取第一列所有行的值
if(cell!=null && cell.getContents() != null){
year = cell.getContents().trim();
}
cell = sheet.getCell(1, i);
if(cell!=null && cell.getContents() != null){
month = cell.getContents().trim();
}
cell = sheet.getCell(2, i);
if(cell!=null && cell.getContents() != null){
factoryid = cell.getContents().trim();
}
cell = sheet.getCell(3, i);
if(cell!=null && cell.getContents() != null){
feename= cell.getContents().trim();
}
cell = sheet.getCell(4, i);
if(cell!=null && cell.getContents() != null){
monthqty = cell.getContents().trim();
}
cell = sheet.getCell(5, i);
if(cell!=null && cell.getContents() != null){
countqty = cell.getContents().trim();
}
cell = sheet.getCell(6, i);
if(cell!=null && cell.getContents() != null){
tqqty = cell.getContents().trim();
} if(!"".equals(year)&&!"".equals(month)&&!"".equals(factoryid)&&!"".equals(feename))
//&&!"".equals(sycomp_id)&&NumberUtils.isNumber(sycomp_id)&&!"".equals(tobasystid)&&NumberUtils.isNumber(factoryid)
//&&NumberUtils.isNumber(tobasystid)判断字符串是否是数字
//&&!"".equals(monthqty)&&NumberUtils.isNumber(monthqty)&&Double.parseDouble(monthqty)>0
//&&!"".equals(countqty)&&NumberUtils.isNumber(countqty)&&Double.parseDouble(countqty)>0
//&&!"".equals(tqqty))&&NumberUtils.isNumber(tqqty)&&Double.parseDouble(tqqty)>0)
{ if("".equals(monthqty)){monthqty="0";}
if("".equals(countqty)){countqty="0";}
if("".equals(tqqty)){tqqty="0";}
/*
Double monthqty1=Double.parseDouble(monthqty);
Double countqty1=Double.parseDouble(countqty);
Double tqqty1=Double.parseDouble(tqqty);
*/
System.out.println(year+","+month+","+factoryid+","+feename+","+monthqty+","+countqty+","+tqqty);
/*
CallHelper helper =initializeCallHelper("G_logistisfeebymonth", form, request, false);
helper.setParam("year", year);
helper.setParam("month", month);
helper.setParam("factoryid", factoryid);
helper.setParam("feename", feename);
helper.setParam("monthqty", monthqty);
helper.setParam("countqty", countqty);
helper.setParam("tqqty", tqqty);
helper.setParam("personid", getPersonId(request));
helper.execute(); StringBuffer exe = new StringBuffer();
exe.append("merge into l_logistisfeebymonth a ")
.append("using ( ")
.append("select * from table( ")
.append("values('2015','01','1','物流费用合计','5640.00','28333.00','26865.00') ")
.append(") as tab(year,month,factoryid,feename,monthqty,countqty,tqqty) ")
.append(") b on a.year = b.year and a.month = b.month and a.factoryid = b.factoryid and a.feename = b.feename")
.append("when matched then ")
.append("update set a.monthqty = b.monthqty,a.countqty=b.countqty,a.tqqty=b.tqqty ")
.append("when not matched then ")
.append("insert (year,month,factoryid,feename,monthqty,countqty,tqqty,create_time,create_personid)")
.append("values(b.year,b.month,b.factoryid,b.feename,b.monthqty,b.countqty,b.tqqty,current timestamp,"+getPersonId(request)+")");
sqls.add(exe.toString());
*/
String sql = "select year,month from l_logistisfeebymonth where year='"+year+"' and month='"+month+"' and factoryid='"+factoryid+"'";
Executer ex = new Executer();
SqlRuturn sp=ex.ExecSeletSQL(sql);
ArrayList<?> list = sp.getResultSet();
System.out.println(list.size());
if(list.size()==0){//判断数据是否存在
StringBuffer exe = new StringBuffer();
exe.append("insert into l_logistisfeebymonth(year,month,factoryid,feename,monthqty,countqty,tqqty,create_time,create_personid) ")
.append("values('"+year+"','"+month+"','"+factoryid+"','"+feename+"','"+monthqty+"','"+countqty+"','"+tqqty+"',current timestamp,"+getPersonId(request)+")");
sqls.add(exe.toString());
} /*
StringBuffer exe1 = new StringBuffer();
exe1.append("merge into l_logistisfeebymonth a ")
.append("using ( ")
.append("select year,month,factoryid,feename,monthqty,countqty,tqqty from l_logistisfeebymonth_temp ")
.append(") b on a.year = b.year and a.month = b.month and a.factoryid = b.factoryid")
.append("when matched then ")
.append("update set a.status=to_char(int(a.status)+1) ")
.append("when not matched then ")
.append("insert (year,month,factoryid,feename,monthqty,countqty,tqqty,create_time,create_personid)")
.append("values(b.year,b.month,b.factoryid,b.feename,b.monthqty,b.countqty,b.tqqty,current timestamp,"+getPersonId(request)+")");
sqls.add(exe1.toString());
*/ }
}
//sqls.add("update l_logistisfeebymonth set month = '0'||trim(month) where length(trim(month)) < 2");
OptionUtil.exeSqls(sqls);
}
} catch (Exception e) {
e.printStackTrace();
}
}
在JSP中将EXEL文件的数据传入到数据库中的更多相关文章
- ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- View中选择的数据行中的部分数据传入到Controller中
将View中选择的数据行中的部分数据传入到Controller中 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NE ...
- 将Excel上千条数据写入到数据库中
简要说明:因工作需要,需要一张Excel表格中的所有数据导入到数据库中.如下表,当然这只是一部分,一共一千多条. 前期处理: 首先要保证上图中的Excel表格中的数据不能为空,如果有为空的数据,可以稍 ...
- Android学习笔记——保存数据到SQL数据库中(Saving Data in SQL Databases)
知识点: 1.使用SQL Helper创建数据库 2.数据的增删查改(PRDU:Put.Read.Delete.Update) 背景知识: 上篇文章学习了保存文件,今天学习的是保存数据到SQL数据库中 ...
- 【hibernate spring data jpa】执行了save()方法 sql语句也执行了,但是数据并未插入数据库中
执行了save()方法 sql语句也执行了,但是数据并未插入数据库中 解决方法: 是因为执行了save()方法,也执行了sql语句,但是因为使用的是 @Transactional 注解,不是手动去提 ...
- SqlBulkCopy将DataTable中的数据批量插入数据库中
#region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 /// <summary> /// 注意:DataTable中的列需要与数据库表中的列完全一致.// ...
- 多线程查询数据,将结果存入到redis中,最后批量从redis中取数据批量插入数据库中【我】
多线程查询数据,将结果存入到redis中,最后批量从redis中取数据批量插入数据库中 package com.xxx.xx.reve.service; import java.util.ArrayL ...
- 检验Excel中数据是否与数据库中数据重复
#region 记录Excel中的重复列 /// <summary> /// 记录Excel中的重复列 /// </summary> /// <param name=&q ...
- C#实现从EXCEL文件读取数据到SqlServer数据库
用第三方组件:NPOI组件实现 先去官网:http://npoi.codeplex.com/下载需要引入dll(可以选择.net2.0或者.net4.0的dll),然后在网站中添加引用.使用 NPOI ...
随机推荐
- JS延时器 定时器 暂停器 中断器
// numberMillis 毫秒 function sleep(numberMillis) { var now = new Date(); var exitTime = now.getTime() ...
- 并发编程---线程 ;python中各种锁
一,概念 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 --车间负责把资源整合到 ...
- Linux多网口绑定配合华为5700 eth-trunk技术,提高网络性能
在实际的环境中,服务器通过网口绑定技术,可以很容易的实现网口冗余,负载均衡,从而达到高可用的目的,而且可以提升网络的性能,大幅的提升网络I/O. 一般情况下,Linux的多网口绑定使用的是内核中的“b ...
- codis__通用的使用模式
1,按功能模块分成不同的productName 参照 sample_user, sample_dynamic (见附件) sample_user.tar.gz,sample_dynamic.tar.g ...
- JAVA将秒的总和转换成时分秒的格式
public static void main(String[] args) { String str = "221"; int seconds = Integer.parseIn ...
- 网络传输层之TCP/UDP详解
一.运输层协议概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层. 运输层的任务就是负责主机中两个进程之间的通信,其数据传输的单 ...
- stl容器学习——queue,stack,list与string
目录 头文件 string 目录部分 1.string的定义及初始化 ① 用一个字符串给另一个字符串赋值 ②用字符串常量对字符串进行赋值 ③ 用n个相同的字符对字符串赋值 2.string的运算符及比 ...
- 达人篇:3.1.3)FAI 首件检验
本章目的:了解FAI. 1)定义: FAI: First Article Inspection Report . 汉语译作:首件全尺寸检验报告. 2)目的 制作FAI报告是为了检查成型后的产品尺寸是否 ...
- 2018牛客多校6 - I Team Rocket KD树维护空间
题意:给出n条铁路区间\([L,R]\),共有m个boom依时间顺序放置在\(k_i\)中,区间与\(k_i\)有交集的都被炸掉 求每次炸掉的铁路个数和最后输出所有id被炸的时间点 炸弹能炸到的区间满 ...
- # js设置键名和键值de坑
js设置键名和键值 let obj1 = {'jifeng': 60, 'lilu': 59, 'hongyan': 51, 'donghan': 4, 'liudan': 18, 'liuhaiya ...