js将页面table导出excel,如何弹出保存对话框?

cntmi 2009-11-16 04:16:25
如标题,js将页面table导出excel,如何弹出保存对话框?
一般导出代码都是直接打开excel把内容粘贴进去,这样对用户来说不是很好
想在导出时出现了如下的“保存”对话框,用户自己可以选择保存文件在何处。

声明下,不用java来处理,要用js
希望各位高手给点建议!
...全文
3706 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
byhmxy 2012-10-31
  • 打赏
  • 举报
回复
3楼的方法,为什么在IE9没反应?在IE6和8中都没问题
j466237266 2012-07-21
  • 打赏
  • 举报
回复
顶啊顶啊顶啊顶,很强大
yanfangphp 2012-07-03
  • 打赏
  • 举报
回复
我把3楼的代码全复制下来了,点击按钮怎么没有反应,我用的ie8浏览器
yusongcao7 2011-11-03
  • 打赏
  • 举报
回复
很好很强大
z86963 2011-07-14
  • 打赏
  • 举报
回复
强啊 up
dege301 2010-11-04
  • 打赏
  • 举报
回复
看看回复都这么麻烦
mengxiangyy 2010-08-17
  • 打赏
  • 举报
回复
LZ,你的方法可以实现,但是下载下来的excel打开时为什么会询问文件格式不对呢?
stoner_kuang 2010-06-26
  • 打赏
  • 举报
回复
你可以把那个button设置一个ID,然后到代码的最后那里把这个button focus一下就可以啦~~
cntmi 2009-11-24
  • 打赏
  • 举报
回复
3楼写的代码,可以实现,但是实现的时候,会把页面中的表格给选中了,有没有办法取消选中呢?
cntmi 2009-11-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 airelisa 的回复:]
java就写过,js还真没试过。
[/Quote]


那复杂的表格也用java写?重新组织表格吗?
airelisa 2009-11-17
  • 打赏
  • 举报
回复
java就写过,js还真没试过。
cntmi 2009-11-16
  • 打赏
  • 举报
回复
呵呵,问题我自己已经解决啦,跟大家分享一下,代码如下

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
<title>WEB页面导出为EXCEL文档的方法</title>
</head>
<body>
<table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td colspan="5" align="center">WEB页面导出为EXCEL文档的方法</td>
</tr>
<tr>
<td>列标题1</td>
<td>列标题2</td>
<td>列标题3</td>
<td>列标题4</td>
<td>列标题5</td>
</tr>
<tr>
<td>aaa</td>
<td>bbb</td>
<td>ccc</td>
<td>ddd</td>
<td>eee</td>
</tr>
<tr>
<td><div>AAA</div></td>
<td>BBB</td>
<td>CCC</td>
<td>DDD</td>
<td>EEE</td>
</tr>
<tr>
<td>FFF</td>
<td>GGG</td>
<td>HHH</td>
<td>III</td>
<td>JJJ</td>
</tr>
</table>
<input type="button" onclick="javascript:method1('tableExcel');" value="导入到EXCEL">
<SCRIPT LANGUAGE="javascript">
var idTmr ;


function method1(tableid) {//整个表格拷贝到EXCEL中

var curTbl = document.getElementById(tableid);
var oXL = new ActiveXObject("Excel.Application");
//创建AX对象excel
var oWB = oXL.Workbooks.Add();
//获取workbook对象
var xlsheet = oWB.Worksheets(1);
//激活当前sheet
var sel = document.body.createTextRange();
sel.moveToElementText(curTbl);
//把表格中的内容移到TextRange中
sel.select();
//全选TextRange中内容
sel.execCommand("Copy");
//复制TextRange中内容
xlsheet.Paste();
//粘贴到活动的EXCEL中
oXL.Visible = true;
//设置excel可见属性

try{
var fname = oXL.Application.GetSaveAsFilename("save.xls", "Excel Spreadsheets (*.xls), *.xls");
}catch(e){
print("Nested catch caught " + e);
}finally{
oWB.SaveAs(fname);

oWB.Close(savechanges=false);
//xls.visible = false;
oXL.Quit();
oXL=null;
//结束excel进程,退出完成
//window.setInterval("Cleanup();",1);
idTmr = window.setInterval("Cleanup();",1);

}
}
function Cleanup() {
window.clearInterval(idTmr);
CollectGarbage();
}
</SCRIPT>
</body>
</html>






这里我还有一个问题,就是这种导出方法可以实现单元格的合并,但是却带有表格线……
我想实现表格的合并,但是却不要表格线,各位给点建议哈,谢谢
xiaofan_sap 2009-11-16
  • 打赏
  • 举报
回复
呵呵 把代码贴出来 阿
anyqu 2009-11-16
  • 打赏
  • 举报
回复
不太现实!

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧