使用Javascript控制Excel

文/279826138  出处/博客园

Js导出表格到excel,收集了点方法,但有个问题还是没解决..

先看我导出的方法



//导出EXCEL
function method2(tableid) //读取表格中每个单元到EXCEL中


    var curTbl = document.getElementById(tableid);
   
      try {
            var oXL = new ActiveXObject("Excel.Application");
      }
      catch(e)
      {
        alert( "您必须安装Excel2000或以上,同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。请选择Internet设置--安全选项--本地Intranet--改区域的安全级别设置为低,才能导出到Excel!");
       
        window.location.reload();
        return "";
      }
   
    //创建AX对象excel
    var oWB = oXL.Workbooks.Add();
    //获取workbook对象
    var oSheet = oWB.ActiveSheet;
    //激活当前sheet
    var Lenr = curTbl.rows.length;
    //取得表格行数
    for (i = 0; i < Lenr; i++)
    {
        var Lenc = curTbl.rows(i).cells.length;
       

        //<!--设置显示字符而不是数字-->
         
        oSheet.Columns(6).NumberFormatLocal="@"
        oSheet.Columns(5).NumberFormatLocal="@";
        oSheet.Columns(8).NumberFormatLocal="@";
        //取得每行的列数
        for (j = 0; j < Lenc; j++)
        {
            oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText;
            //赋值
        }
    }
    oXL.Selection.HorizontalAlignment = -4108;        //'xlHAlignCenter  横向居中
    oXL.Range("a1:b1:c1:d1:f1:g1:h1:i1:j1:k1").MergeCells = true;//合并
    //oXL.Range("a1:b1").select;//选中
    //oXL.Selection.VerticalAlignment = -4108;          //'xlVAlignCenter  竖向居中
    oSheet.Columns.AutoFit; //自动适应大小
    //设置excel可见属性
    oXL.Visible = true;
    oXL.UserControl = true;  //excel交由用户控制

}





客户端都需要改设置,觉得很不好,本来使用ajax客户端就是为了减低服务器压力,现在却有这个麻烦....

有些用户把Internet设置安全级别设置为低就可了,但是测试过后有一部分机子居然要把"对没有标记为安全的activex控件进行初始化和脚本运行”设置成“启用”才可.

这对用户ie会造成安全隐患.



这个问题没有好的解决方法,各位用过的可以指点一下.



还有一疑问,因为我的table是根据用户选择需要显示的信息才显示,用户没选择要显示的不显示,

但是问题来了,js导出到excel时候隐藏的信息会在excel里面成为空的一列.

不指点是否有解决方法,或者js有让excel去空列的方法?望指教..

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [javascript] 的这些文章也感兴趣:

用JavaScript实现页面百叶窗效果
JavaScript实现图片切换效果(适用于IE浏览器)
如何用javascript判断录入的日期是否合法
Javascript 调用 Webservice ,处理返回的XML数据
FireFox 如何用Javascript 修改状态栏
javascript实现划词标记划词搜索功能
用javascript在客户端调用CRM Web Service
缘份就没了么
js入门实例の构造函数\方法的定义和调用\原型对象
OpenLayer + Ags 综合应用(一)--OpenLayer 地图展现