js脚本execl导出jsp中table,IE报脚本错误

 

<script type="text/javascript">   

function export(){ 

var curTbl = document.getElementById("tableid");
     //创建AX对象excel 
        try{
          var oXL = new ActiveXObject("Excel.Application");
        }catch(e){
          alert("没有找到execl软件,请安装execl软件或 浏览器可信站点没加或ActiveX控件没配好");
          return false
        } 
        //获取workbook对象
        var oWB = oXL.Workbooks.Add(); 
        //激活当前sheet 
        var oSheet = oWB.ActiveSheet;  
        //定义行高 
     oSheet.Rows(1+":"+1).RowHeight =20;
     oSheet.Rows(2+":"+2).RowHeight =27;  
         //定义列宽
        oSheet.Columns('A:A').ColumnWidth = 10;  
     oSheet.Columns('B:B').ColumnWidth = 6;  
      //Excel中的OFFSET函数,相关的函数存在于在个函数的元素中
        //第一行
        oSheet.Cells(1, 1).value = "附表4";
        oSheet.Rows(1).Font.Size = 13;   //设置文字大小          
     oSheet.Rows(1).Font.Name = "宋体";//设置文字字体
      //第二行
     oSheet.Rows(2).Font.Size = 19;   //设置文字大小          
     oSheet.Rows(2).Font.Name = "黑体";//设置文字字体
     oSheet.Range(oSheet.Cells(2,1), oSheet.Cells(2,13)).mergecells=true; //合并单元格
     oSheet.Range(oSheet.Cells(2,1), oSheet.Cells(2,13)).Select(); //选中
     oXL.Selection.HorizontalAlignment = 3;
     oSheet.Cells(2, 1).value = "《XXXX销售统一发票XXXXX(汇总)》";
     //第三行
     oSheet.Rows(3).Font.Size = 12;   //设置文字大小          
     oSheet.Rows(3).Font.Name = "宋体";//设置文字字体
     oSheet.Range(oSheet.Cells(3,1), oSheet.Cells(3,4)).mergecells=true; //合并单元格
     oSheet.Range(oSheet.Cells(3,5), oSheet.Cells(3,11)).mergecells=true; //合并单元格
     oSheet.Range(oSheet.Cells(3,12), oSheet.Cells(3,13)).mergecells=true; //合并单元格
     var nsrsbh=document.getElementById("nsrsbh").value;
     var nsrmc=document.getElementById("nsrmc").value;
     var ssq = document.getElementById("ssq1").value;
     oSheet.Cells(3, 1).value = "企业名称:"+nsrmc;
     oSheet.Cells(3, 5).value = "纳税人识别号:"+nsrsbh;
     oSheet.Cells(3, 12).value = "所属期限:"+ssq.substring(0,4)+"年"+ssq.substring(5,7)+"月";
     //第四行
     oSheet.Rows(4).Font.Size = 12;   //设置文字大小          
     oSheet.Rows(4).Font.Name = "黑体";//设置文字字体
     oSheet.Range(oSheet.Cells(4,1), oSheet.Cells(4,1)).Select(); //选中
      oXL.Selection.HorizontalAlignment = 3;
      oXL.Selection.Borders.LineStyle = 1
     oSheet.Range(oSheet.Cells(4,2), oSheet.Cells(4,3)).mergecells=true; //合并单元格
     oSheet.Range(oSheet.Cells(4,2), oSheet.Cells(4,3)).Select(); //选中
      oXL.Selection.HorizontalAlignment = 3;
      oXL.Selection.Borders.LineStyle = 1
     oSheet.Range(oSheet.Cells(4,4), oSheet.Cells(4,5)).mergecells=true; //合并单元格
     oSheet.Range(oSheet.Cells(4,4), oSheet.Cells(4,5)).Select(); //选中
      oXL.Selection.HorizontalAlignment = 3;
      oXL.Selection.Borders.LineStyle = 1
     oSheet.Range(oSheet.Cells(4,6), oSheet.Cells(4,7)).mergecells=true; //合并单元格
     oSheet.Range(oSheet.Cells(4,6), oSheet.Cells(4,7)).Select(); //选中
      oXL.Selection.HorizontalAlignment = 3;
      oXL.Selection.Borders.LineStyle = 1
     oSheet.Range(oSheet.Cells(4,8), oSheet.Cells(4,9)).mergecells=true; //合并单元格
     oSheet.Range(oSheet.Cells(4,8), oSheet.Cells(4,9)).Select(); //选中
      oXL.Selection.HorizontalAlignment = 3;
      oXL.Selection.Borders.LineStyle = 1
     oSheet.Range(oSheet.Cells(4,10), oSheet.Cells(4,11)).mergecells=true; //合并单元格
     oSheet.Range(oSheet.Cells(4,10), oSheet.Cells(4,11)).Select(); //选中
      oXL.Selection.HorizontalAlignment = 3;
      oXL.Selection.Borders.LineStyle = 1
     oSheet.Range(oSheet.Cells(4,12), oSheet.Cells(4,13)).mergecells=true; //合并单元格
     oSheet.Range(oSheet.Cells(4,12), oSheet.Cells(4,13)).Select(); //选中
      oXL.Selection.HorizontalAlignment = 3;
      oXL.Selection.Borders.LineStyle = 1
     oSheet.Cells(4, 1).value = "项目";
     oSheet.Cells(4, 2).value = "期初库存";
     oSheet.Cells(4, 4).value = "本期领购";
     oSheet.Cells(4, 6).value = "本期开具";
     oSheet.Cells(4, 8).value = "本期交回未开具数量";
     oSheet.Cells(4, 8).Font.Size = 11.5;
     oSheet.Cells(4, 8).Font.Bold= true;
     oSheet.Cells(4, 10).value = "本期作废或遗失";
     oSheet.Cells(4, 12).value = "期末库存";
        var Lenr = curTbl.rows.length;
        oSheet.Cells(7, 3).Font.Size = 7;
        oSheet.Cells(7, 5).Font.Size = 7;
        oSheet.Cells(7, 7).Font.Size = 7;
        oSheet.Cells(7, 9).Font.Size = 7;
        oSheet.Cells(7, 11).Font.Size = 7;
        oSheet.Cells(7, 13).Font.Size = 7;
        for (i = 1; i < Lenr; i++)
        {
           var Lenc = curTbl.rows(i).cells.length;
           var l=i+6; 
           oSheet.Rows(l+":"+l).RowHeight =20;
           
           //取得每行的列数
           for (j = 0; j < Lenc; j++)
           {  
              oSheet.Cells(i+7, 3).Font.Size = 7;
              oSheet.Cells(i+7, 5).Font.Size = 7;
              oSheet.Cells(i+7, 7).Font.Size = 7;
              oSheet.Cells(i+7, 9).Font.Size = 7;
              oSheet.Cells(i+7, 11).Font.Size = 7;
              oSheet.Cells(i+7, 13).Font.Size = 7;
              oSheet.Range(oSheet.Cells(i+4,j+1),oSheet.Cells(i+4,j+1)).Select();
               oXL.Selection.HorizontalAlignment = 3;
               oXL.Selection.Borders.LineStyle = 1
               if(i+4==8&&j==0){
                oSheet.Cells(8, 1).Font.Size = 6;
                oSheet.Cells(8, 1).value = "";
               }else{
                oSheet.Cells(i + 4, j + 1).value = curTbl.rows(i).cells(j).innerText;
               }
               //赋值
           }
        }
        //设置excel可见属性
        oXL.DisplayAlerts = false
        oXL.Visible = true; 

}
</script>

基于这个,通过本人的现场经验,发现客户还是导不出:

首先声明:我是用http文本传输协议,访问服务器的

原因有三个:

一:未加可信站点

添加可信站点的方法:打开IE浏览器,依次点击“工具”->“internet选项”->“安全”->“受信任的站点”->“站点(s)”,在文本框内输入https://www.12345.cn,选择“添加”即可。

二:“对该区域中的所有站点要求服务器验证(https:)”中的勾未去掉

对该区域中的所有站点要求服务器验证(https:)是默认大勾的,

 

现在说说,Internet选项里已添加到受信任站点里面的网站,‘对该区域中的所有站点要求服务器验证’是什么意思?

“对该区域中的所有站点要求服务器验证(https:)”,重点是https上。其中http是文本传输协议的,信息是明文传输,https则是具有

安全性的ssl(Secure Sockets Layer安全套接层)加密传输协议。简单来说既https是http的安全版。

勾选的话表示使用了SSL加密传输协议的网站仍然要进行验证,不勾选的则表示这类网站不需要安全验证,系统默认一般都是勾选的!

个人建议最好还是勾选一下,因为现在大部分网站都是https。

但是如果你的系统是http传输协议,那么应该是不勾选的;看情况而定

三:打开IE浏览器,依次点击“工具”->“internet选项”->“安全”->“受信任的站点”->“自定义级别”->“设置”->“ActiveX控件和插件”

->"对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本"开启即可;

本人可能想的不够全面,如果有高见,请留言

 

上面三点也可以通过修改系统的注册表文件也能做到

在xp中的开始---》运行--》输入regedit,按下面的路径找对应的修改方法

1、  "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\", "Flags", "43", "REG_DWORD" );---Flags是:“对该区域中的所有站点要求服务器验证(https:)”,43代表不选,47代表选

2、下面三个依次是添加本地站点,客户端站点,服务器站点
   "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range120\\", "http", "2", "REG_DWORD" );
   "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range120\\", ":Range", "127.0.0.1", "" );


   "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range121\\", "http", "2", "REG_DWORD" );
   "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range121\\", ":Range", "<%=clientIp%>", "" );


   "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range122\\", "http", "2", "REG_DWORD" );
   "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range122\\", ":Range", "<%=serverIp%>", "" );


3、打开IE浏览器,依次点击“工具”->“internet选项”->“安全”->“受信任的站点”->“自定义级别”->“设置”->“ActiveX控件和插件”

->"对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本"开启就是这个了

   "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\", "1201", "0", "REG_DWORD" );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值