第一种:逐个单元格导出法(此方法操作相对复杂,但是比较灵和,适合对导出表有要求的情况)
javascript代码如下
<SCRIPT LANGUAGE="javascript">
function ExcelExport(tableid)
{
var table = document.getElementById(tableid); //获取页面的table
var excel = new ActiveXObject("Excel.Application"); //实例化Excel.Application对象
var workB = excel.Workbooks.Add(); 添加新的工作簿
var sheet = workB.ActiveSheet;
//var sheet= workB.Worksheets(1);//该句代码和上句代码同意,都是激活一个sheet
/***************常用样式设置语句***************************************/
//sheet.Rows(1).WrapText = false; //自动换行设置
//sheet.Rows(1).Font.Size=18;//设置第一行的字体大小
//sheet.Rows(1).Interior.ColorIndex=2;//设置第一行背景色
//sheet.Rows(1).Font.ColorIndex=1;//设置第一行字体色
//sheet.Range(sheet.Cells(1,1),sheet.Cells(1,7)).mergecells=true;//第一行1到7单元格合并
sheet.Columns("A").ColumnWidth =35;//设置列宽
sheet.Columns("B").ColumnWidth =35;
//sheet.Columns("A:B").ColumnWidth =35;//另一种设置列宽的方式
sheet.Rows(1).RowHeight = 35;//设置行高
//sheet.Rows(1).Font.Name="黑体";//设置字体
//sheet.Columns.AutoFit;//所有列自适应宽度
//水平对齐方式(貌似-4108为水平居中)
//sheet.Range( sheet.Cells(1,1),sheet.Cells(1,5)).HorizontalAlignment =-4108;
//垂直对齐方式
//sheet.Range( sheet.Cells(1,1),sheet.Cells(1,5)).VerticalAlignment =-4108;
//根据Borders()中参数值设置各个方向边距,1,2,3,4--->top,buttom,left,right
//sheet.Range( sheet.Cells(2,1),sheet.Cells(1,5)).Borders(1).Weight = 2;
/**将页面table写入到Excel中,具体复杂情况(合并单元格等)可在这里面具体操作**********/
var LenRow = table .rows.length; //以下为循环遍历获取页面table的cell元素
for (i = 0; i < LenRow ; i++)
{
var lenCol = table.rows(i).cells.length;
for (j = 0; j < lenCol ; j++)
{
sheet.Cells(i + 1, j + 1).value = table.rows(i).cells(j).innerText; //通过该语句将table的每个
//cell赋予Excel 当前Active的sheet下的相应的cell下
}
}
excel.Visible = true;//设置excel为可见
excel.UserControl = true; //将Excel交由用户控制
}
</SCRIPT>
javascript代码如下
<SCRIPT LANGUAGE="javascript">
function ExcelExport(tableid)
{
var table = document.getElementById(tableid); //获取页面的table
var excel = new ActiveXObject("Excel.Application"); //实例化Excel.Application对象
var workB = excel.Workbooks.Add(); 添加新的工作簿
var sheet = workB.ActiveSheet;
//var sheet= workB.Worksheets(1);//该句代码和上句代码同意,都是激活一个sheet
/***************常用样式设置语句***************************************/
//sheet.Rows(1).WrapText = false; //自动换行设置
//sheet.Rows(1).Font.Size=18;//设置第一行的字体大小
//sheet.Rows(1).Interior.ColorIndex=2;//设置第一行背景色
//sheet.Rows(1).Font.ColorIndex=1;//设置第一行字体色
//sheet.Range(sheet.Cells(1,1),sheet.Cells(1,7)).mergecells=true;//第一行1到7单元格合并
sheet.Columns("A").ColumnWidth =35;//设置列宽
sheet.Columns("B").ColumnWidth =35;
//sheet.Columns("A:B").ColumnWidth =35;//另一种设置列宽的方式
sheet.Rows(1).RowHeight = 35;//设置行高
//sheet.Rows(1).Font.Name="黑体";//设置字体
//sheet.Columns.AutoFit;//所有列自适应宽度
//水平对齐方式(貌似-4108为水平居中)
//sheet.Range( sheet.Cells(1,1),sheet.Cells(1,5)).HorizontalAlignment =-4108;
//垂直对齐方式
//sheet.Range( sheet.Cells(1,1),sheet.Cells(1,5)).VerticalAlignment =-4108;
//根据Borders()中参数值设置各个方向边距,1,2,3,4--->top,buttom,left,right
//sheet.Range( sheet.Cells(2,1),sheet.Cells(1,5)).Borders(1).Weight = 2;
/**将页面table写入到Excel中,具体复杂情况(合并单元格等)可在这里面具体操作**********/
var LenRow = table .rows.length; //以下为循环遍历获取页面table的cell元素
for (i = 0; i < LenRow ; i++)
{
var lenCol = table.rows(i).cells.length;
for (j = 0; j < lenCol ; j++)
{
sheet.Cells(i + 1, j + 1).value = table.rows(i).cells(j).innerText; //通过该语句将table的每个
//cell赋予Excel 当前Active的sheet下的相应的cell下
}
}
excel.Visible = true;//设置excel为可见
excel.UserControl = true; //将Excel交由用户控制
}
</SCRIPT>
//导出excel
function method1(tableid) {var curTbl = document.getElementById(tableid);
var oXL;
try{
oXL = new ActiveXObject("Excel.Application");
}catch (e) {
alert("无法启动Excel!\n\n如果您的电脑中已经安装了Excel,由于导出Excel使用了ActiveX控件,"+"需要调整IE的安全级别。\n\n具体操作:\n\n"+"工具 → Internet选项 → 安全 → 自定义级别 → 对没有标记为安全的ActiveX进行初始化和脚本运行 → 启用");
return;
}
var oWB = oXL.Workbooks.Add(); //创建AX对象excel
var oSheet = oWB.ActiveSheet; //获取workbook对象
var sel = document.body.createTextRange(); //激活当前sheet
sel.moveToElementText(curTbl); //把表格中的内容移到TextRange中
sel.select(); //全选TextRange中内容
sel.execCommand("Copy"); //复制TextRange中内容
oSheet.Paste(); //粘贴到活动的EXCEL中
oSheet.Columns("A").ColumnWidth =7;//设置列宽
oSheet.Columns("B").ColumnWidth =6;//设置列宽
oSheet.Columns("C").ColumnWidth =10;//设置列宽
oSheet.Columns("F").ColumnWidth =8;//设置列宽
oSheet.Columns("E").ColumnWidth =8;//设置列宽
oSheet.Columns("F").ColumnWidth =4;//设置列宽
oSheet.Columns("G"+":"+"IV").ColumnWidth =4;//设置列宽
oSheet.Columns("A"+":"+"IV").WrapText=true; //设置自动换行
oSheet.Rows(1+":"+5).HorizontalAlignment = 3; //设置第一到第五行是居中显示
//获得table的行数
var tab = document.getElementById("tableID");
var rowNum = tab.rows.length;
oSheet.Rows((rowNum-3)+":"+rowNum).HorizontalAlignment = 3; //设置第一到第五行是居中显示
oSheet.Rows(1+":"+1).RowHeight =20;
oSheet.Rows(2+":"+5).RowHeight =15;
oXL.Visible = true; //设置excel可见属性
}
<div>
导出数据:<a href="javascript:method1('tableID')"><span class="export excel">导出Excel...</span></a>
</div>