日期:2014-05-18  浏览次数:20809 次

如何把JSP页面里的查询出来的数据导出到excel
高手们,请教一下,
是这样的,我在网页里加了的查询button,并在动态产生了一个table,这个表放在一个Iframe里,怎么才能把这个frame里的table导出为一个excel?    
最好有代码。谢谢  


------解决方案--------------------
告诉你个最简单的方法
1.新建个JSP页
2.复制你要导出页的所有代码到新页
3.在 <head> 前添加 <html xmlns= "http://www.w3.org/1999/xhtml ">
4.在你要导出页通过 <a href= "test2.jsp "> 导出到Excel </a>
------解决方案--------------------
在数据库里导算了。。。
------解决方案--------------------
你把从库里查询出来的信息先保存在List里面,然后自己写一个action,把信息的输出格式设置成Excel的形式,把List做为context的一部分加到里面就ok了!
------解决方案--------------------
有个包可以搞定:jxl.jar Apache.org出品
------解决方案--------------------
告诉你两个方法,一个是在action里面写方法用poi包,这和一种要自己手动设置excel的显示格式,很麻烦,这里先不说了,如果你想知道,我再发
另一种是用javascript脚本,这一种很简单,但不适合分页
<table width= "1165 " border= "1 " id= "excelTable " > 注意,id不能少
<input name= "print " value= "导出excel " type= "button " onclick= "myPrint( 'excelTable ') " />

function myPrint(tableId) {
try {
//alert( 'a ');
var elTable = document.getElementById(tableId);
//alert( 'b ');
var oRangeRef = document.body.createTextRange();
oRangeRef.moveToElementText(elTable);
//alert( 'c ');
oRangeRef.execCommand( "Copy ");
//alert( 'd ');
var oXL = new ActiveXObject( "Excel.Application ");
//alert( "e ");
var oWB = oXL.Workbooks.Add;
var oSheet = oWB.ActiveSheet;
oSheet.Paste();

oXL.Selection.ColumnWidth = 5;
oXL.Selection.RowHeight = 35;// 行高
//oXL.Selection.Rows( " <%=rows%> : <%=rows%> ").RowHeight = 35; //动态设定单行高度
oXL.Selection.Columns(3).ColumnWidth = 7; //单列设定宽度
oXL.Selection.Columns(5).ColumnWidth = 8; //单列设定宽度
oXL.Visible = true;
oSheet = null;
oWB = null;
appExcel = null;
}
catch (e) {
alert(e.description);
}

------解决方案--------------------
在导出得jsp页面加上
<% response.setContentType( "application/vnd.ms-excel;charset=看你是什么环境而定 "); %>