在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 ...
随机推荐
- Redis数据持久化,安全
一.redis数据持久化 由于redis是一个内存数据库,如果系统遇到致命问题需要关机或重启,内存中的数据就会丢失,这是生产环境所不能允许的.所以redis提供了数据持久化的能力. redis提供了两 ...
- top 常用命令
参考文档: http://www.cnblogs.com/allen8807/archive/2010/11/10/1874001.html [root@linux ~]# top [-d] | to ...
- Windows 64位操作系统下安装和配置MySQL
一安装方式 MySQL安装文件分为两种,一种是MSI格式的,一种是ZIP格式的.下面来看看这两种方式: MSI格式的可以直接点击安装,按照它给出的安装提示进行安装,Windows操作系统下一般MySQ ...
- TX2 内核编译
准备工作 版本:jetpack3.1,R28.1,TX2 虚拟机:ubuntu14.04 参考文档.编译工具链.源码下载 编译 主要步骤记载如下: export CROSS_COMPILE=<c ...
- 高阶篇:4.2.2)DFMEA层级分明的失效模式、失效后果、失效原因
本章目的:明确失效模式.失效后果.失效原因的定义,分清楚层次关系,完成DFMEA这部分的填写. 1.失效模式,失效后果,失效原因的定义: 这是FEMEA手册第四册中的定义. 1.1 潜在失效模式 (b ...
- 《Paxos Made Simple》翻译(转)
1 Introduction 可能是因为之前的描述对大多数读者来说太过Greek了,Paxos作为一种实现容错的分布式系统的算法被认为是难以理解的.但事实上,它可能是最简单,最显而易见的分布式算法了. ...
- php 图片上传 并返回上传文件位置 支持多文件上传
<?php /** * Created by PhpStorm. * User: DY040 * Date: 2018/4/26 * Time: 13:23 */ echo '<pre&g ...
- C#串口通讯中常用的16进制的字节转换
1.对于通讯协议的十六进制数值进行简单转换 //二进制转十进制Console.WriteLine("二进制 111101 的十进制表示: "+Convert.ToInt32(&qu ...
- 基于python实现GET和POST请求及token相关调用
GET请求实例: #coding:utf- import requests parm={"}#封装登录参数 r=requests.get("http://space.test.co ...
- ViewData与ViewBag的区别
本文导读:在asp.net mvc程序设计中,传递数据常常会用到viewdata.viewbag.ViewData是一个字典集合,通过key值读取对应的value:ViewBag是动态类型,作用和Vi ...