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

用js 将HTML的内容导出到Excel文件

2011-10-04 20:31 639 查看
使用说明:
在页面中导入HtmlToExcel.js,并且“导出”按钮的onclick事件只需调用此方法:
exportExcel(tableId,excelTitle);
/*
tableId:需要被导出的table的id
excelTitle:excel文件的大标题
*/
运行环境:

IE 6.0


IE的Internet选项-》安全-》本地Intranet-》自定义级别-》对未标记为可安全执行的脚本的activeX初始化并执行脚本—》选择为“提示”
附件:
文件:HtmlToExcel.js
内容:
var tableId="maintable";

var excelTitle="数据导出!";

function exportExcel(tableId,excelTitle){

this.tableId=tableId;

this.excelTitle=excelTitle;

AutomateExcel();

}

function AutomateExcel()

{

var i,j;

try

{

var xls = new ActiveXObject ( "Excel.Application" );

}

catch(e) {

alert( "要打印该表,您必须安装Excel电子表格软件,同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。 ");

return "";

}

xls.visible =true; //设置excel为可见

var xlBook = xls.Workbooks.Add;

var xlsheet = xlBook.Worksheets(1);

<!--合并-->

var oTable=document.all[this.tableId];

//设置table id

var rowNum=oTable.rows.length;

var cellNum=oTable.rows(1).cells.length;

xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,cellNum)).mergecells=true;

xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,cellNum)).value=""+this.excelTitle;

//设置excel表头

// xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,6)).Interior.ColorIndex=5;//设置底色为蓝色

// xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,6)).Font.ColorIndex=4;//设置字体色

// xlsheet.Rows(1). Interior .ColorIndex = 5 ;//设置底色为蓝色 设置背景色 Rows(1).Font.ColorIndex=4

<!--设置行高-->

xlsheet.Rows(1).RowHeight = 25;

<!--设置字体 ws.Range(ws.Cells(i0+1,j0), ws.Cells(i0+1,j1)).Font.Size = 13 -->

xlsheet.Rows(1).Font.Size=14;

<!--设置字体 设置选定区的字体 xlsheet.Range(xlsheet.Cells(i0,j0), ws.Cells(i0,j0)).Font.Name = "黑体" -->

xlsheet.Rows(1).Font.Name="黑体";

xlsheet.Rows(2).Font.Name="黑体";

<!--设置列宽 xlsheet.Columns(2)=14;-->

xlsheet.Columns("A:D").ColumnWidth =18;

<!--设置显示字符而不是数字-->

xlsheet.Columns(2).NumberFormatLocal="@";



//设置单元格内容自动换行 range.WrapText = true ;

//设置单元格内容水平对齐方式 range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;//设置单元格内容竖直堆砌方式

//range.VerticalAlignment=Excel.XlVAlign.xlVAlignCenter

//range.WrapText = true; xlsheet.Rows(3).WrapText=true 自动换行



//设置标题栏

//xlsheet.Cells(2,1).Value="商品类别";

//xlsheet.Cells(2,2).Value="商品名称";

//xlsheet.Cells(2,3).Value="计费方式";

//xlsheet.Cells(2,4).Value="有效天数";

//xlsheet.Cells(2,5).Value="金额";

//xlsheet.Cells(2,6).Value="所属服务项目";

//xlsheet.Cells(2,7).Value="发卡时间";



//html table内容写到excel

for(i=1;i<=rowNum;i++){

for (j=1;j<=cellNum;j++){

xlsheet.Cells(i+1,j).Value=oTable.rows(i-1).cells(j-1).innerHTML;

}

}

<!-- xlsheet.Range(xls.Cells(i+4,2),xls.Cells(rowNum,4)).Merge; -->

// xlsheet.Range(xlsheet.Cells(i, 4), xlsheet.Cells(i-1, 6)).BorderAround , 4

// for(mn=1,mn<=6;mn++) . xlsheet.Range(xlsheet.Cells(1, mn), xlsheet.Cells(i1, j)).Columns.AutoFit;

xlsheet.Columns.AutoFit;

xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(rowNum+1,cellNum)).HorizontalAlignment =-4108;//居中

xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(1,7)).VerticalAlignment =-4108;

xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,cellNum)).Font.Size=10;

xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,cellNum)).Borders(3).Weight = 2; //设置左边距

xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,cellNum)).Borders(4).Weight = 2;//设置右边距

xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,cellNum)).Borders(1).Weight = 2;//设置顶边距

xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,cellNum)).Borders(2).Weight = 2;//设置底边距

xls.UserControl = true; //很重要,不能省略,不然会出问题 意思是excel交由用户控制

xls=null;

xlBook=null;

xlsheet=null;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: