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


<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页面的方法即可查看当前进度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值