在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. [agc016b]Colorful Hats 分类讨论

    Description ​ 有n个人,每个人都戴着一顶帽子.当然,帽子有不同的颜色. ​ 现在,每个人都告诉你,他看到的所有其他人的帽子共有多少种颜色,请问你有没有符合所有人的描述的情况. Input ...

  2. php 调用银联接口 【转载】

    首先要开启openssl开启方法为 openssl证书放在Apache的bin目录中. 其中的php_openssl.dll,ssleay32.dll,libeay32.dll,3个文件拷到windo ...

  3. [AIR] AS3读取本地文件夹中的文件

    import flash.filesystem.File; import flash.net.URLLoader; //var dir:File = File.desktopDirectory; // ...

  4. leetcode-119-Pascal's Triangle II(生成某一行的帕斯卡三角形)

    题目描述:   Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle ...

  5. css 清楚浮动三种方法

    我们可以看到这样一个布局: <style> .left{ width: 200px; height: 200px; background-color: #00ee00; float: le ...

  6. centos的基本命令04

    零:简述linux的文档目录结构 linux的文档目录是一个树形结构,操作的时候表现为以 / 开头的树形结构,/也是系统 的最顶端,也就是linux的root,也是linux系统的文件系统的入口. 他 ...

  7. 让windows登陆界面显示administrator账户

    如果windowsXP只有一个administrator账户,在开机登陆windows的欢迎界面,会出现这个账户名,点击,输入密码就可登陆到windows桌面: 如果新建了另一个管理员账户,在欢迎界面 ...

  8. git提交代码

    安装 Windows 下载安装地址 Linux 1 yum install git / apt-get install git 安装后执行,正常显示则安装正常 1 git --version 使用 生 ...

  9. c#中的引用类型和值类型

    一,c#中的值类型和引用类型 众所周知在c#中有两种基本类型,它们分别是值类型和引用类型:而每种类型都可以细分为如下类型: 什么是值类型和引用类型 什么是值类型: 进一步研究文档,你会发现所有的结构都 ...

  10. vue-tree 组织架构图/树形图自动生成(含添加、删除、修改)

    项目中用代码生成组织架构图  有新增,编辑,删除的功能            生成树形图的组件git-hub地址: https://github.com/tower1229/Vue-Tree-Char ...