在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. 实用的bash别名和函数

    本文来自于:程序师 作为一个命令行探索者,你或许发现你自己一遍又一遍重复同样的命令.如果你总是用ssh进入到同一台电脑,如果你总是将一连串命令连接起来,如果你总是用同样的参数运行一个程序,你也许希望在 ...

  2. RDLC报表的相关技巧三(数量/金额的逐页累加)

    数量/金额的逐页累加,不是当页小计. 核心步骤: 1.在Group1大组中加入小组Group2,2.Group2的组尾加入一个计算框 : =RunningValue(Fields!BaseAmount ...

  3. Linux下简易进度条的实现

    在生活中,进度条是很常见的,那么,进度条是如何实现的呢? 首先,进度条的动态是利用人眼视觉暂留效果的.实际上是如下过程: 先输出:[=                                  ...

  4. HTML5本地存储——IndexedDB二:索引

    HTML5本地存储——IndexedDB(二:索引)   在HTML5本地存储——IndexedDB(一:基本使用)中介绍了关于IndexedDB的基本使用方法,很不过瘾,这篇我们来看看indexed ...

  5. Springboot第一篇:框架了解与搭建

    在上一章,我讲解了React+node+express相应的框架搭建,一个项目只有一个前端框架够么,当然不够啦!!! 所以这节我们就来讲后台springboot框架的搭建和相关原理吧~~~版本(2.1 ...

  6. Visual Studio 2019 激活码

    Visual Studio 2019 Enterprise BF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio 2019 Professional NYWVH-HT ...

  7. 利用Python实现倒序任意整数

    这是很早以前学习C时候做过的一个练习题,题目的要求大概是把用户输入的三位数倒序输出,比如说用户输入123,然后程序应该输出的结果是321.如果遇到用户输入100,那么程序应该输出1.然后我给扩展一下, ...

  8. nginx(三)-动静分离

    什么叫动静分离 所谓动静分离就是说我们的图片,css,js之类的文件都交给nginx来处理,nginx处理不了的,比如jsp就交给tomcat来处理. 有人计算过,nginx代理处理静态请求远远优于t ...

  9. Q481 神奇字符串

    神奇的字符串 S 只包含 '1' 和 '2',并遵守以下规则: 字符串 S 是神奇的,因为串联字符 '1' 和 '2' 的连续出现次数会生成字符串 S 本身. 字符串 S 的前几个元素如下:S = & ...

  10. JVM架构和GC垃圾回收机制

    深入理解系列之JDK8下JVM虚拟机(1)——JVM内存组成 https://blog.csdn.net/u011552404/article/details/80306316 JVM架构和GC垃圾回 ...