在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文件的数据传入到数据库中的更多相关文章

  1. ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  2. View中选择的数据行中的部分数据传入到Controller中

    将View中选择的数据行中的部分数据传入到Controller中   ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NE ...

  3. 将Excel上千条数据写入到数据库中

    简要说明:因工作需要,需要一张Excel表格中的所有数据导入到数据库中.如下表,当然这只是一部分,一共一千多条. 前期处理: 首先要保证上图中的Excel表格中的数据不能为空,如果有为空的数据,可以稍 ...

  4. Android学习笔记——保存数据到SQL数据库中(Saving Data in SQL Databases)

    知识点: 1.使用SQL Helper创建数据库 2.数据的增删查改(PRDU:Put.Read.Delete.Update) 背景知识: 上篇文章学习了保存文件,今天学习的是保存数据到SQL数据库中 ...

  5. 【hibernate spring data jpa】执行了save()方法 sql语句也执行了,但是数据并未插入数据库中

    执行了save()方法  sql语句也执行了,但是数据并未插入数据库中 解决方法: 是因为执行了save()方法,也执行了sql语句,但是因为使用的是 @Transactional 注解,不是手动去提 ...

  6. SqlBulkCopy将DataTable中的数据批量插入数据库中

    #region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 /// <summary> /// 注意:DataTable中的列需要与数据库表中的列完全一致.// ...

  7. 多线程查询数据,将结果存入到redis中,最后批量从redis中取数据批量插入数据库中【我】

    多线程查询数据,将结果存入到redis中,最后批量从redis中取数据批量插入数据库中 package com.xxx.xx.reve.service; import java.util.ArrayL ...

  8. 检验Excel中数据是否与数据库中数据重复

    #region 记录Excel中的重复列 /// <summary> /// 记录Excel中的重复列 /// </summary> /// <param name=&q ...

  9. C#实现从EXCEL文件读取数据到SqlServer数据库

    用第三方组件:NPOI组件实现 先去官网:http://npoi.codeplex.com/下载需要引入dll(可以选择.net2.0或者.net4.0的dll),然后在网站中添加引用.使用 NPOI ...

随机推荐

  1. 大数据list去重

    MaxList模块主要是对Java集合大数据去重的相关介绍. 背景: 最近在项目中遇到了List集合中的数据要去重,大概一个2500万的数据,开始存储在List中,需要跟一个2万的List去去重. 直 ...

  2. Layout2:StackPanel(补交作业)

    <StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" > <Rect ...

  3. software installing

    <1>.Apache防火墙配置 firewall-cmd --add-service=http firewall-cmd --add-service=https 防火墙通过80和443端口 ...

  4. POJ3074 Sudoku

    POJ3074 Sudoku 与POJ2676相比,这一题搜索时每一步都找到最好确定的点进行枚举 对于每行.每列.每个九宫格,都分别用一个9位二进制数保存还有那些数还可以填 对于每个位置,将其所在行. ...

  5. mocha测试框架

    中文翻译文档:https://www.jianshu.com/p/9c78548caffa 阮一峰:http://www.ruanyifeng.com/blog/2015/12/a-mocha-tut ...

  6. 感想篇:7)知其然与知其所以然,KnowHow与KnowWhy

    本章目的:探究--知其然与知其所以然,KnowHow与KnowWhy. 1.Know-How体系与代价: 100多年的汽车研发历史表明,企业只有开发过两代车以上才能逐步建立和完善Know-How体系. ...

  7. python函数参数类型及其顺序

    根据inspect模块官文文档中关于函数参数类型的相关说明,python函数参数共有五种类型,按顺序分别为:POSITIONAL_ONLY.POSITIONAL_OR_KEYWORD.VAR_POSI ...

  8. Jmeter使用指南----压力测试工具

    来源: https://blog.csdn.net/u012111923/article/details/80705141 https://www.cnblogs.com/st-leslie/p/51 ...

  9. SpringBoot集成WebSocket【基于纯H5】进行点对点[一对一]和广播[一对多]实时推送

    代码全部复制,仅供自己学习用 1.环境搭建 因为在上一篇基于STOMP协议实现的WebSocket里已经有大概介绍过Web的基本情况了,所以在这篇就不多说了,我们直接进入正题吧,在SpringBoot ...

  10. 04-oracle时间函数

    add_months(sysdate,x)x月之后的日期:last_day(sysdate)指定日期所在月份的最后一天:next_day(sysdate,'星期x')当前日期后的下一个星期x: mon ...