在系统开发的过程中,经常会碰到用户提出要将数据导到EXCEL的要求。所以写了以下心得:
//说明---table中加ID tr中加ID,红色表示
//==============================================================
function ExportToExcel()
{
var tbl = document.getElementById("SearchResult");
var ll_RowCount = tbl.rows.length; //总共有几行
var ll_CellCount = tbl.rows[0].cells.length; //每行有几列
if (ll_RowCount==0)
{
alert("没有查询结果可以导出到Word!");
return 0;
}
var ExcelApp;
var ExcelDoc;
//启动EXCEL软件
try
{
ExcelApp = new ActiveXObject("Excel.Application" );
ExcelApp.Application.Visible = true;
ExcelDoc = ExcelApp.Workbooks.Add; //新建一篇Excel文档
ExcelDoc.Worksheets.Add;
ExcelDoc.Worksheets(1).Activate;
ExcelDoc.Worksheets(1).Columns("A").columnwidth=10;
ExcelDoc.Worksheets(1).Columns("B").columnwidth=10;
ExcelDoc.Worksheets(1).Columns("C").columnwidth=20;
ExcelDoc.Worksheets(1).Columns("D").columnwidth=15;
}
catch(e)
{
if ((e.number & 0xFFFF)==429)
{
//alert(e.description);
//原因:1、本机未安装Excel软件
// 2、禁用了ActiveX控件
alert("操作出错,不能打开Excel软件。\n\\n原因一:如果没有安装Excel软件请先安装Excel软件;\n原因二:如果已安装了Excel软件,则可以把当前网址添加到“可信站点”中,或在IE设置中启用“对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本”!");
return 0;
}
}
//生成表格
var oSheet = ExcelDoc.ActiveSheet;
var li_i;
var li_j;
var ls_CellContent = "";
for (li_i=0;li_i for (li_j=0;li_j //得到单元格的内容 ls_CellContent = tbl.rows[li_i].cells[li_j+1].innerText; //取单元格纯文本的内容 ls_CellContent = ls_CellContent.TrimNew(); oSheet.Cells(li_i+1,li_j+1).value = ls_CellContent; oSheet.Cells(li_i+1,li_j+1).WrapText = true; oSheet.Cells(li_i+1,li_j+1).HorizontalAlignment=3; oSheet.Cells(li_i+1,li_j+1).VerticalAlignment=2; } } //alert("导出完成!"); ExcelDoc.Activate(); //使Excel软件得到焦点 } //---------以下为去空格代码----- String.prototype.TrimNew=function() { return this.replace(/(^\\s*)|(\\s*$)/g, ""); }下载本文