<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页面的方法即可查看当前进度
分享到:
相关推荐
实例13 文件写入并锁定 实例14 读取文件信息 实例15 随机提取文件行 实例16 获得磁盘剩余空间 实例17 搜索文件或文件夹 实例18 文件下载 实例19 文件上传 实例20 网页计数器 实例21 超级链接计数 第3章 ...
实例13 文件写入并锁定 实例14 读取文件信息 实例15 随机提取文件行 实例16 获得磁盘剩余空间 实例17 搜索文件或文件夹 实例18 文件下载 实例19 文件上传 实例20 网页计数器 实例21 超级链接计数 第3章 数据库、XML...
下面写关于如何把无刷新的数据写入到数据库中,需要的朋友可以参考下
压缩包里面含有行政区划代码的access数据库,read.asp,index.htm,check.js,身份证格式的说明,行政区划代码的文本格式数据,以及一个asp.net的页面writedb.aspx,writedb.aspx是从文本中读数据写入access数据库的,由于...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
PHP能够创建、打开、读取、写入、删除以及关闭服务器上的文件 PHP能够接收表单数据 PHP能够发送并取回cookies PHP能够添加、删除、修改数据库中的数据 PHP能够限制用户访问网站中的某些页面 能够运行于各种平台,...
9.1.4 使用GridView控件编辑并删除数据 9.1.5 使用GridView控件分页显示数据 9.1.6 对GridView控件中的数据进行排序 9.2 其他数据控件的应用 9.2.1 使用Repeater控件显示数据 9.2.2 在Repeater控件中分页显示...
第一次进入aspx页面,就要读取出大量数据。写入页面中。使用都在页面要有添删改的操作,而且只有当点击面的保存按钮才能真正的写入到数据库中。因此我选择了Ajax+JSON的方式来实现这个页面。 代码如下: ”...
连接数据库,并写入数据 前端 登录页面 注册页面 数据查看页面/主页面 个人中心页面 修改密码界面 管理员界面 后端 设计数据库,数据表:user_info ; island ; node ; node_data ajax前后端交互 数据库读取...
采用三层结构,泛型读取数据 完善Forms验证功能,使用Filter方式,在Action的时候定义Attrible属性,写入Role的票据! 使用Session判定是否管理员! 使用用户控件(ascx)绑定动态数据 使用jQuery Ajax方式发贴,回复 ...
采用三层结构,泛型读取数据 完善Forms验证功能,使用Filter方式,在Action的时候定义Attrible属性,写入Role的票据! 使用Session判定是否管理员! 使用用户控件(ascx)绑定动态数据 使用jQuery Ajax方式发贴,回复 ...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
采用三层结构,泛型读取数据 完善Forms验证功能,使用Filter方式,在Action的时候定义Attrible属性,写入Role的票据! 使用Session判定是否管理员! 使用用户控件(ascx)绑定动态数据 使用jQuery Ajax方式发贴,回复 ...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
* 关于数据的不一致性,可以在写入的时候先写入缓存,读取的时候也先在缓存中读取,这样就可以避免数据的不一致性 * 缓存利用Redis,内存满的情况下,键的删除策略采用volatile-lru * 热卖榜以及排序功能依据Redis的...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...