WEB页面导出为EXCEL、word文档的方法(完整版)

来源:互联网 发布:网络作战司令部 特朗普 编辑:程序博客网 时间:2024/05/16 23:58

http://mixedhouse.blog.sohu.com/76146543.html

ExpToWord();

function ExpToWord()
{
try{
document.all.newinfo.innerText="将启动Word统计结果,请等待……";
try {
var word;
word =new ActiveXObject( "Word.Application");
}catch(e) {
alert( "要导出该表,您必须安装Word软件。\n\n同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。\n\n请点击【帮助】了解浏览器设置方法,或者与管理员联系!");
document.all.newinfo.innerText="您已经取消了统计或者没有安装电子表格!!如要重新统计,请刷新后再试!";
return false;
}
//拷贝选定区域
var objRange=document.body.createTextRange();
objRange.moveToElementText(document.all.PrintDiv);
objRange.scrollIntoView();
objRange.select();
objRange.execCommand("Copy");
objRange.collapse(false);
//拷贝结束。

//粘贴数据到word.
var oDC = word.Documents.Add("",0,1);
var range=oDC.Range(0,1);
range.Paste();
//粘贴结束。

document.all.newinfo.innerText="";
word.Visible=true;
    word=null;
    }catch(e) {
   
//好象释放不成功。   
   word.Quit();
   document.all.newinfo.innerText="启动word出错,请联系管理员或者刷新重试!";
 word=null;
 window.setInterval("Cleanup();",1);
}

}

//以上代码充分考虑了word启动不了问题。

 

ExpToExcel();

function ExpToExcel()
{
try{
document.all.newinfo.innerText="将启动Excel统计结果,请等待……";
try {
var Excel;
excel =new ActiveXObject( "Excel.Application");
}catch(e) {
alert( "要导出该表,您必须安装excel软件。\n\n同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。\n\n请点击【帮助】了解浏览器设置方法,或者与管理员联系!");
document.all.newinfo.innerText="您已经取消了统计或者没有安装电子表格!!如要重新统计,请刷新后再试!";
return false;
}
//拷贝选定区域
var objRange=document.body.createTextRange();
objRange.moveToElementText(document.all.PrintDiv);
objRange.scrollIntoView();
objRange.select();
objRange.execCommand("Copy");
objRange.collapse(false);
//拷贝结束。

//粘贴数据到excel.
var oWB =excel.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
oSheet.Paste();
//粘贴结束。

document.all.newinfo.innerText="";
excel.Visible=true;
    excel=null;
    }catch(e) {
   
//好象释放不成功。   
   excel.Quit();
   document.all.newinfo.innerText="启动excel出错,请联系管理员或者刷新重试!";
 excel=null;
 window.setInterval("Cleanup();",1);
}

}

//以上为启动excel的代码。

 //按单元格的内码直接导入到设定好的excel当中。

var temp="book1";
var tianxielei=2;
var mobanname=temp+".xls";
var kaishi=4;
//alert (mobanname);
//return false;
//整个模板命名规则是:资产与安全,直接使用gsType,gsaqType,其它三类指标使用:gsqtType+MainType,形成模板名
//var querysubform=document.all.querysubform.value;
AllAreaExcel1(mobanname,tianxielei,kaishi);

function AllAreaExcel1(mobanname,tianxielei,kaishi)
{
try{
document.all.newinfo.innerText="将启动excel统计结果,请等待……";
 
//这个导出WEB表格导出EXCEL函数是采用每个单元格赋值的形式.
//优点:按字符赋值,只要把工作表改为字符类型,就不会出现身份证有E+字符.缺点:不能保存表格的网页版式,比如字符居中
try {
var oXL = new ActiveXObject("Excel.Application");
//var oXL=new ActiveXObject("Word.Application");
}catch(e) {
alert( "要导出该表,您必须安装Excel电子表格软件。\n\n同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。\n\n请点击【帮助】了解浏览器设置方法,或者与管理员联系!");
document.all.newinfo.innerText="您已经取消了统计或者没有安装电子表格!!如要重新统计,请刷新后再试!";
return "";
}

//var oWB = oXL.Workbooks.Add();
var href1=window.location.href;
var pathname = window.location.pathname;

var index1=href1.indexOf(pathname);
var http1=href1.substring(0,index1);
//取得模板名称:公司类型+指标分类+.xls
//如果不是资产类的指标,直属单位与子公司是一样的。
//资产类的指标,每一个类公司一个。

/*
var tianxielei=2;
 
var zbType=document.all.MainType.options[document.all.MainType.selectedIndex].text;
if (zbType!="资产经营"&&zbType!="安全生产"){
tianxielei=1;
//if (gsType.indexOf("子公司")>-1||gsType.indexOf("直属单位")>-1)
//{gsType="直属单位、子公司";
//}
}

var mobanname=gsType+zbType+".xls";

//如果是安全生产,换成安全生产.xls,因为增加新的安全而作的改动。
if (zbType=="安全生产") 
{mobanname=zbType+".xls";
}
//-------------------------------------
*/
 
var tempurl = pathname.substring(0,(pathname.lastIndexOf('.nsf')+4));
//alert (http1+tempurl+"/book/$file/"+mobanname);
//return false;
try{    
var oWB =oXL.Workbooks.Open(http1+tempurl+"/book/$file/"+mobanname);

}catch(e)
{
alert ("不能找到模板,请与管理员联系。");
oXL.Quit();
oXL=null;
return "";
}
//var oSheet = oWB.ActiveSheet;
var oSheet=oWB.Worksheets(1);

oXL.Cells.Select;

//oXL.Selection.NumberFormatLocal = "@" ; //把整个工作表设置为字符类型,而不是默认的常规类型
var Lenr = ExportToXlsTable.rows.length;

// var kaishi=4;
oXL.Cells(kaishi,1).Select;

//for (i=1;i<Lenr-1;i++)
for (i=tianxielei;i<Lenr-1;i++)
{
var Lenc = ExportToXlsTable.rows(i).cells.length;
 
for (j=0;j<Lenc;j++)
{
// oSheet.Cells(kaishi+i-1,j+1).value = ExportToXlsTable.rows(i).cells(j).innerText;
 oSheet.Cells(kaishi+i-tianxielei,j+1).value = ExportToXlsTable.rows(i).cells(j).innerText;
}
}

     document.all.newinfo.innerText="";
 
oXL.Visible = true;
//    oXL.Quit();
    oXL=null;
    }catch(e) {
   
//好象释放不成功。   
    oXL.Quit();
 oXL=null;
 window.setInterval("Cleanup();",1);
 
}

}
原创粉丝点击