jsp页面点击下载,弹出新窗口出现下载控件,具体下载内容是数据库中的一个字段,下载文件为一个excel文件
此字段的格式为<table></table>的一个表格,内有多行多列,只提取对应内容,样式、标签不需要!急急急,求解答!...
此字段的格式为<table></table>的一个表格,内有多行多列,只提取对应内容,样式、标签不需要!急急急,求解答!
展开
2个回答
展开全部
也不想根据你的具体情况进行修改了,你自己看看我曾经写过的这个js方法把,如果有不完美的地方自己修改一下把。使用下面方法前提是电脑中安装了office
/**
* 25、将table中的数据导出到excel中
* @param tableId 表的id
* @return 无返回,方法中自动处理
*/
function outTableToExcel(tableId){
try{
var xls = new ActiveXObject( "Excel.Application" );
}catch(e){
alert( "要使用该功能,您必须安装Excel电子表格软件,并将电子税务局网站添加为信任站点!\n"+
"添加方法:点击浏览器上面的【工具】--点击【Internet选项】--点击【安全】--点击【可信站点】--点击【站点】--输入或确认一下网址最后点击【添加】");
return false;
}
xls.visible = true;
var xlBook = xls.Workbooks.Add;
var xlsheet = xlBook.Worksheets(1);
//xlsheet.SaveAs("D:\\TEST.XLS");//保存到哪里
var x = 1;
var y = 1;
var objTab=document.getElementById(tableId);
for (var i = 0; i < objTab.rows.length; i++){
y = 1;
for (var j = 0; j < objTab.rows[i].cells.length; j++){
var cellValue="";
var tdcon=objTab.rows[i].cells[j];
if($(tdcon).find("select").length > 0){
//如果是下拉列表的话只得到选中的项显示的值
var selectOb=$(tdcon).find("select").get(0);
cellValue = selectOb.options[selectOb.selectedIndex].innerHTML;
}else if($(tdcon).find("input").length > 0){
for(var k=0;k<$(tdcon).find("input").length;k++){
if($(tdcon).find("input").get(k).type != "hidden" && $(tdcon).find("input").get(k).type != "checkbox" &&
$(tdcon).find("input").get(k).type != "radio"){
//如果是文本框,则只得到文本框内的值
cellValue = $(tdcon).find("input").get(k).value;
}else if($(tdcon).find("input").get(k).type != "hidden"){
cellValue = "无效列";
}
}
}else{
var yszfc = tdcon.innerHTML;
var bqsl=yszfc.split("</").length;
for(var yszfcIndex=1;yszfcIndex<bqsl;yszfcIndex++){
var ksbqWz=yszfc.indexOf("<");
var ksbqJsWz=yszfc.indexOf(">");
var jsbqWz=yszfc.lastIndexOf("</");
var jsbqJsWz=yszfc.lastIndexOf(">");
var yszfc1=yszfc.substring(ksbqWz,ksbqJsWz+1);
var yszfc2=yszfc.substring(jsbqWz,jsbqJsWz+1);
yszfc=yszfc.replace(yszfc1, "");
yszfc=yszfc.replace(yszfc2, "");
}
cellValue=yszfc;
}
xlsheet.Columns(y).NumberFormatLocal= "@";
xlsheet.Cells(x, y).Value = cellValue;
xlsheet.Cells(x, y).Borders.LineStyle = 1;
y++;
}
x++;
}
xlsheet.Columns.AutoFit; //自动适应大小
return;
}
/**
* 25、将table中的数据导出到excel中
* @param tableId 表的id
* @return 无返回,方法中自动处理
*/
function outTableToExcel(tableId){
try{
var xls = new ActiveXObject( "Excel.Application" );
}catch(e){
alert( "要使用该功能,您必须安装Excel电子表格软件,并将电子税务局网站添加为信任站点!\n"+
"添加方法:点击浏览器上面的【工具】--点击【Internet选项】--点击【安全】--点击【可信站点】--点击【站点】--输入或确认一下网址最后点击【添加】");
return false;
}
xls.visible = true;
var xlBook = xls.Workbooks.Add;
var xlsheet = xlBook.Worksheets(1);
//xlsheet.SaveAs("D:\\TEST.XLS");//保存到哪里
var x = 1;
var y = 1;
var objTab=document.getElementById(tableId);
for (var i = 0; i < objTab.rows.length; i++){
y = 1;
for (var j = 0; j < objTab.rows[i].cells.length; j++){
var cellValue="";
var tdcon=objTab.rows[i].cells[j];
if($(tdcon).find("select").length > 0){
//如果是下拉列表的话只得到选中的项显示的值
var selectOb=$(tdcon).find("select").get(0);
cellValue = selectOb.options[selectOb.selectedIndex].innerHTML;
}else if($(tdcon).find("input").length > 0){
for(var k=0;k<$(tdcon).find("input").length;k++){
if($(tdcon).find("input").get(k).type != "hidden" && $(tdcon).find("input").get(k).type != "checkbox" &&
$(tdcon).find("input").get(k).type != "radio"){
//如果是文本框,则只得到文本框内的值
cellValue = $(tdcon).find("input").get(k).value;
}else if($(tdcon).find("input").get(k).type != "hidden"){
cellValue = "无效列";
}
}
}else{
var yszfc = tdcon.innerHTML;
var bqsl=yszfc.split("</").length;
for(var yszfcIndex=1;yszfcIndex<bqsl;yszfcIndex++){
var ksbqWz=yszfc.indexOf("<");
var ksbqJsWz=yszfc.indexOf(">");
var jsbqWz=yszfc.lastIndexOf("</");
var jsbqJsWz=yszfc.lastIndexOf(">");
var yszfc1=yszfc.substring(ksbqWz,ksbqJsWz+1);
var yszfc2=yszfc.substring(jsbqWz,jsbqJsWz+1);
yszfc=yszfc.replace(yszfc1, "");
yszfc=yszfc.replace(yszfc2, "");
}
cellValue=yszfc;
}
xlsheet.Columns(y).NumberFormatLocal= "@";
xlsheet.Cells(x, y).Value = cellValue;
xlsheet.Cells(x, y).Borders.LineStyle = 1;
y++;
}
x++;
}
xlsheet.Columns.AutoFit; //自动适应大小
return;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询