解决Office的OWC版本问题。2000,2002XP,2003各不相同,加入Office的版本检查,增加一个文件名参数,完整代码如下:
<script language="javascript">
function exportExcel(atblData,dirPath)
{
//alert(dirPath);
if (typeof(atblData)=="undefined"||typeof(atblData)=="unknow")
{
alert("没有数据可以导出!");
return;
}
var mysheet;
var off2000=false;
var off2002xp=false;
var off2003=false;
//office2003
try {
mysheet=new ActiveXObject("OWC11.Spreadsheet");
off2003=true;
}
catch(e) { }
//office2002-xp
if(!off2003)
{
try {
mysheet=new ActiveXObject("OWC10.Spreadsheet");
off2002xp=true;
}
catch(e) {}
}
//office 2000
if(!off2003 && !off2002xp)
{
try {
mysheet=new ActiveXObject("OWC.Spreadsheet");
off2000=true;
}
catch(e) {}
}
if(!off2000 && !off2002xp && !off2003 )
{
alert( "请确定已安装Excel2000(或更高版本)的OWC ActiveX控件,并且没打开同名xls文件");
return;
}
with(mysheet)
{
DataType = "HTMLData";
HTMLData =atblData.outerHTML;
try{
if(off2000)
{
ActiveSheet.Export(dirPath,0);
alert('导出EXCEL文档完毕');
}
if(off2002xp)
{
Export(dirPath,0);
alert('导出EXCEL文档完毕');
}
if(off2003)
{
Export(dirPath,0);
alert('导出EXCEL文档完毕');
}
}
catch (e)
{
alert('导出Excel表失败,请确定已安装Excel2000(或更高版本),并且没打开同名xls文件');
//alert(Error.description);
}
}
}
</script>
<table id=tblData>
<tr>
<td>
</tr>
</table>
<center><input type="button" value="导出Excel文档" οnclick="exportExcel(tblData,'C://sale.xls')"></center>
<script language="javascript">
function exportExcel(atblData,dirPath)
{
//alert(dirPath);
if (typeof(atblData)=="undefined"||typeof(atblData)=="unknow")
{
alert("没有数据可以导出!");
return;
}
var mysheet;
var off2000=false;
var off2002xp=false;
var off2003=false;
//office2003
try {
mysheet=new ActiveXObject("OWC11.Spreadsheet");
off2003=true;
}
catch(e) { }
//office2002-xp
if(!off2003)
{
try {
mysheet=new ActiveXObject("OWC10.Spreadsheet");
off2002xp=true;
}
catch(e) {}
}
//office 2000
if(!off2003 && !off2002xp)
{
try {
mysheet=new ActiveXObject("OWC.Spreadsheet");
off2000=true;
}
catch(e) {}
}
if(!off2000 && !off2002xp && !off2003 )
{
alert( "请确定已安装Excel2000(或更高版本)的OWC ActiveX控件,并且没打开同名xls文件");
return;
}
with(mysheet)
{
DataType = "HTMLData";
HTMLData =atblData.outerHTML;
try{
if(off2000)
{
ActiveSheet.Export(dirPath,0);
alert('导出EXCEL文档完毕');
}
if(off2002xp)
{
Export(dirPath,0);
alert('导出EXCEL文档完毕');
}
if(off2003)
{
Export(dirPath,0);
alert('导出EXCEL文档完毕');
}
}
catch (e)
{
alert('导出Excel表失败,请确定已安装Excel2000(或更高版本),并且没打开同名xls文件');
//alert(Error.description);
}
}
}
</script>
<table id=tblData>
<tr>
<td>
</tr>
</table>
<center><input type="button" value="导出Excel文档" οnclick="exportExcel(tblData,'C://sale.xls')"></center>