`
vista_move
  • 浏览: 29297 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ajax读取文件数据并写入数据库

    博客分类:
  • java
阅读更多
<html>
  <head>
    <title>导入观众数据</title>
    <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
    <script language="Javascript">
    	function importDate() {
    		var filename = $("#attachfile").val();
    		if(!(filename.indexOf(".xls") > -1 || filename.indexOf(".xlsx") > -1)) {
    			alert("请选择正确的Excel格式文件");
    		}else {
    			$("#uploadForm").submit();
    		}
    	}
    	function callback(msg)
		{
			document.getElementById("msg").innerHTML = "进度:" + msg;
		}
    </script>
  </head>
  <body>
		     <form name="uploadForm" id="uploadForm" method="POST"  action="<%=path %>/servlet/VisitorServlet?op=importExcel" enctype="multipart/form-data" target="hidden_frame">
		           <table border="0" cellspacing="0" cellpadding="0" class="edit-table">
		               <thead>
		                 <tr>
		                   <th colspan="2"><img src="../../Images/photo_album.png" >导入数据</th>
		                 </tr>
		               </thead>
		               <tbody>
		                 <tr>
							<th width="20%"><span></span>数据文件:</th>
							<td width="30%"><input type="file" name="attachfile" id="attachfile" size="30"/></td>
						</tr>
						<tr>
							<td colspan="2">
								<span id="msg">进度:</span>
							</td>
						</tr>
	                  </tbody>
		          </table>
		          <iframe name="hidden_frame" id="hidden_frame" style="display:none"></iframe>
		       </form>   
	 	<input type="button" class="shop-btn1"  value="导入" onclick="javascript:importDate();"/>
		<input type="button" class="shop-btn1" value="关闭窗口"  onClick='javascript:window.open("","_self");window.close();'/>
</body>
</html>

说明:建一个隐藏的iframe,在form的target=“隐藏iframe的id”

servlet逻辑:
ServletInputStream is = request.getInputStream();
			/*过滤HTTPHeader,否则jxl会报无法识别文件结尾的错误*/    
			byte[] junk = new byte[1024]; 
			
			for(int i = 0; i < 4; i++)     
			{     
				is.readLine(junk, 0,junk.length);
			}
			int result = vm.importExcelDateNew(is, out);
			if(result != -1 && result == -2) {
				out.println("<script language='Javascript'> ");
				out.println(" alert('导入观众数据成功!');");
				out.println(" top.callback('导入成功');");
				out.println(" top.window.close();");
				out.println(" window.close();");
				out.println("</script>");
			}else {
				out.println("<script language='Javascript'> ");
				out.println(" alert('导入第"+ result +"条数据时出现异常!');");
				out.println(" top.callback('导入失败');");
				out.println("</script>");
			}


public int importExcelDateNew(InputStream in, PrintWriter out) throws IOException {

		Workbook book; // 声明一个空的工作对象
		int result = 0;
		VisitorDB vb = new VisitorDB();
		try {
			book = Workbook.getWorkbook(in); // 使工作薄对象得到一个execl
			Sheet se = book.getSheet(0); // 得到Excel第一个sheet
			System.out.println("*********开始从导入观众数据*********");
			result = vb.importExcelDate(se, out);
			System.out.println("*********导入观众数据结束***********");
		} catch (Exception e) {
			e.printStackTrace();
			return -1;
		}
		return result;
	}


导入过程回调jsp页面的方法即可查看当前进度
分享到:
评论

相关推荐

    PHP+Ajax网站开发典型实例

    实例13 文件写入并锁定 实例14 读取文件信息 实例15 随机提取文件行 实例16 获得磁盘剩余空间 实例17 搜索文件或文件夹 实例18 文件下载 实例19 文件上传 实例20 网页计数器 实例21 超级链接计数 第3章 ...

    PHP+Ajax网站开发典型实例-源代码

    实例13 文件写入并锁定 实例14 读取文件信息 实例15 随机提取文件行 实例16 获得磁盘剩余空间 实例17 搜索文件或文件夹 实例18 文件下载 实例19 文件上传 实例20 网页计数器 实例21 超级链接计数 第3章 数据库、XML...

    ajax异步刷新实现更新数据库

    下面写关于如何把无刷新的数据写入到数据库中,需要的朋友可以参考下

    AJAX+asp识别身份证

    压缩包里面含有行政区划代码的access数据库,read.asp,index.htm,check.js,身份证格式的说明,行政区划代码的文本格式数据,以及一个asp.net的页面writedb.aspx,writedb.aspx是从文本中读数据写入access数据库的,由于...

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    Ajax+PHP简单数据交互

    PHP能够创建、打开、读取、写入、删除以及关闭服务器上的文件 PHP能够接收表单数据 PHP能够发送并取回cookies PHP能够添加、删除、修改数据库中的数据 PHP能够限制用户访问网站中的某些页面 能够运行于各种平台,...

    ASP.NET 2.0+SQL Server 2005全程指南-源代码

    9.1.4 使用GridView控件编辑并删除数据 9.1.5 使用GridView控件分页显示数据 9.1.6 对GridView控件中的数据进行排序 9.2 其他数据控件的应用 9.2.1 使用Repeater控件显示数据 9.2.2 在Repeater控件中分页显示...

    asp.net 2.0中利用Ajax2.0实现JSON传送大量页面数据

    第一次进入aspx页面,就要读取出大量数据。写入页面中。使用都在页面要有添删改的操作,而且只有当点击面的保存按钮才能真正的写入到数据库中。因此我选择了Ajax+JSON的方式来实现这个页面。 代码如下: ”...

    毕业设计-智能温室大棚远程监控系统

    连接数据库,并写入数据 前端 登录页面 注册页面 数据查看页面/主页面 个人中心页面 修改密码界面 管理员界面 后端 设计数据库,数据表:user_info ; island ; node ; node_data ajax前后端交互 数据库读取...

    ASP.NET MVC LINQ BBS源码

    采用三层结构,泛型读取数据 完善Forms验证功能,使用Filter方式,在Action的时候定义Attrible属性,写入Role的票据! 使用Session判定是否管理员! 使用用户控件(ascx)绑定动态数据 使用jQuery Ajax方式发贴,回复 ...

    ASP.NET MVC1.0 BBS Demo教学版源码

    采用三层结构,泛型读取数据 完善Forms验证功能,使用Filter方式,在Action的时候定义Attrible属性,写入Role的票据! 使用Session判定是否管理员! 使用用户控件(ascx)绑定动态数据 使用jQuery Ajax方式发贴,回复 ...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    java源码包---java 源码 大量 实例

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    ASP.NET MVC1.0 BBS

    采用三层结构,泛型读取数据 完善Forms验证功能,使用Filter方式,在Action的时候定义Attrible属性,写入Role的票据! 使用Session判定是否管理员! 使用用户控件(ascx)绑定动态数据 使用jQuery Ajax方式发贴,回复 ...

    java源码包2

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    基于SpringBoot+Mybatis开发的主从架构的Steam商城,详情请看README+源代码+文档说明+数据库sql

    * 关于数据的不一致性,可以在写入的时候先写入缓存,读取的时候也先在缓存中读取,这样就可以避免数据的不一致性 * 缓存利用Redis,内存满的情况下,键的删除策略采用volatile-lru * 热卖榜以及排序功能依据Redis的...

    java源码包3

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    java源码包4

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

Global site tag (gtag.js) - Google Analytics