您的位置:首页 > Web前端 > JavaScript

JS 导出EXCEL

2011-06-23 16:33 671 查看
因为公司的程序需要导出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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: