有些时候,我们想把网页上的一些数据下载下来,我们想要把它们用word和excel的方式保存,但是总是找不到合适的方法,最近我也遇到了这样的问题,在网上搜罗一圈下来,也倒是有很多这方面的文章,但是主要是适用于IE浏览器的,对于其他浏览器几乎都是用的插件,我就想用js自己写一个可以导出文件的页面。在搜寻了一些资料后,自己写了一个比较简洁的。
一般情况下,我们导出的内容为表格数据居多,所以我们就以表格为例,导出页面内容
html页面内容
页面就一个基本的表格,和两个按钮,分别用于导出word和excel
Name
Grade
Math
History
Like
1
65
83
Mary
1
34
89.5
Lily
2
90
95
BOb
2
76.3
80.1
Sendy
3
60
79
js内容
-
IE浏览器
IE浏览器是最特别的,它的excel导出是用到activex方式,使用js/vbs调用excel对象,下面这种方法仅限于IE,所以局限性比较大。在我的另一个文章中已经写了如何判断浏览器类型请点击这里进入:JavaScript判断浏览器类型
if(getExplorer()=='ie')
{
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("Excel.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); } }
-
其他主流浏览器(Chrome、Firefox等)
其实只要懂这个基本步骤和原理,导出文件就变得轻而易举了。下面的代码是以导出word为例
function tableExport(type){
if(type=='doc'){
var doc="";
doc+="";
";
var html=document.getElementById("score").innerHTML;
doc+=html;
doc+="
var docFile="";
docFile=docFile+""+doc+"