JS 导出EXCEL

因为公司的程序需要导出Excel,而且页面展示数据用的是 Html table 所以必需用 JS 导出 EXCEL,

调用EXCEL打开,但不自动保存。

经过测式,IE6,IE7,IE8 都好用,测式Excel版本:2000,2003,2007

导出代码如下:

 

<script type="text/javascript">

        //开始行StartRow,开始列StartCol,结束行EndRow,结束列EndCol,特殊转换列NumCol

        function TabToExcel(TableID,StartRow,StartCol,EndRow,EndCol,NumCol)
        {
            var Table= document.getElementById(TableID); //激活当前sheet
            var AXE= new ActiveXObject("Excel.Application"); //创建AX对象excel
            var AWB= AXE.Workbooks.Add(); //获取workbook对象
            var ASheet = AWB.ActiveSheet; //复制TextRange中内容
            try
            {
                //检查开始行,开始列,结束行,结束列
                if (StartRow=="undefined" || StartRow <0)
                {
                    StartRow = 0;
                }
                if (StartCol=="undefined" || StartCol <0)
                {
                    StartCol = 0;
                }
                if (EndRow=="undefined" || EndRow <= 0)
                {
                    EndRow = Table.rows.length;
                }
                if (EndRow>Table.rows.length)
                {
                    EndRow = Table.rows.length;
                }
                if (EndCol == "undefined" || EndCol <=0)
                {
                    EndCol = Table.rows[StartRow].cells.length;
                }
                if (EndCol>Table.rows[StartRow].cells.length)
                {
                    EndCol = Table.rows[StartRow].cells.length;
                }
                //行列循环写入Excel
                var ExStartRow = 1
                for (var i = StartRow; i< EndRow; i++)
                {
                    var ExStartCol = 1;
                    for (var j = StartCol ; j< EndCol; j++)
                    {
                        ASheet.cells(ExStartRow,ExStartCol).Value = Table.rows[i].cells[j].innerText;//文本内容
                        ASheet.Cells(ExStartRow,ExStartCol).Font.ColorIndex = 1;//字体颜色(黑色)
                        ASheet.Cells(ExStartRow,ExStartCol).Font.Size = 10;//字号(10号)
                        ASheet.Cells(ExStartRow,ExStartCol).Font.Name="宋体";// 字体(宋体)
                        //这个地方是我程序中的列为数值型13位的,所以要转一下类型,否则会出现 科学记数
                        if (j==NumCol && i>0)
                        {
                            ASheet.Cells(ExStartRow,ExStartCol).NumberFormat="0";
                        }
                        ExStartCol = ExStartCol+1;
                    }
                    ExStartRow = ExStartRow+1;
                }
                //除了上面的那个特殊列,所有的列转成文本型。s
                for (var j = StartCol+1; j< EndCol+1; j++)
                {
                    if (j!=NumCol-StartCol+1)
                    {
                        ASheet.Columns(j).NumberFormatLocal="@";
                    }
                }
                AXE.Visible = true; //设置excel可见属性
            }
            catch(er)
            {
                ASheet.Application.Quit();
            }
        }

<.script>

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值