一、 直接拷贝整个表格到EXCEL中

二、 通过遍历表格,给EXCEL中相应的单元格赋值。

三、 把表格中的内容提取出来,利用IE的另存为.csv的格式。

各方法的好处:

1. 直接拷贝表格,能够保留表格中的原有的格式,比如,列,行的合并,对齐方式,底色等等,

2. 通过遍历表格,比较灵活,可以遍历表格某些需要部分的内容。

3. 利用IE的另存为,不用创建ActiveXObject对象,可以处理表格合并方面的问题。

各方法的缺点:

1. 可能弹出脚本错误:Automation不能创建对象。

解决方法:启用IE安全设置中的:对没有标记为安全的ActiveX控件进行初始化和脚本运行。

由于整个表格复制到EXCEL中,给表格加个标题,并加入到EXCEL中可能会遇到麻烦。

解决方法:首先在表格中加入第一行

<tr><td colspan="x" align="center"

X,表示整个表格的列数,复制完整个表格后,加如下代码,oSheet为当前活动的sheet.

oSheet.Range(oSheet.Cells(1, 1), oSheet.Cells(1, x)).value = "表格标题" ;//设置标题

oSheet.Rows(1).Font.Size = 16; //设置文字大小

oSheet.Rows(1).Font.Name = "宋体" ;//设置文字字体

注:以下属性我没用着,可能有用,也可能会报错

oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).mergecells=true ; //合并单元格

oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).Interior.ColorIndex=6;//设置底色?

oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).Font.ColorIndex=5;//设置字体色?

oSheet.Rows(1).RowHeight=20; //设置列高

oSheet.Cells(iRow,iCol).Halignment=’2’//设置字体居中

2. 可能弹出脚本错误:Automation不能创建对象(解决方法如上)。

表格内容写入到EXCEL中无表格线(未解决)

且有单元格合并时会有问题,解决方法:合并单元格后再写数据。

oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).mergecells=true ; //合并单元格

3. 表格内容写入到EXCEL中无表格线(未解决)

表格格式复杂时,会有问题,(rowspan>1 or colspan>1),解决方法:一般都是表头格式比较复杂,可先把表头写死,然后再循环写其他数据。


代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
"Generator" CONTENT="EditPlus"
"Author" CONTENT=""
"Keywords" CONTENT=""
"Description" CONTENT=""
</HEAD>

<BODY>
"tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0"

<tr>

<td colspan="5" align="center"

</tr>

<tr>

<td>列标题1</td>

<td>列标题2</td>

<td>列标题3</td>

<td>列标题4</td>

<td>列标题5</td>

</tr>

<tr>

<td>aaa</td>

<td>bbb</td>

<td>ccc</td>

<td>ddd</td>

<td>eee</td>

</tr>

<tr>

<td>AAA</td>

<td>BBB</td>

<td>CCC</td>

<td>DDD</td>

<td>EEE</td>

</tr>

<tr>

<td>FFF</td>

<td>GGG</td>

<td>HHH</td>

<td>III</td>

<td>JJJ</td>

</tr>


</table>
<input type="button" οnclick="javascript:method1('tableExcel');" value="第一种方法导入到EXCEL"

<input type="button" οnclick="javascript:method2('tableExcel');" value="第二种方法导入到EXCEL"

<input type="button" οnclick="javascript:getXlsFromTbl('tableExcel',null);" value="第三种方法导入到EXCEL"
<SCRIPT LANGUAGE="javascript"

function
{//整个表格拷贝到EXCEL中

var

var oXL = new ActiveXObject("Excel.Application"

//创建AX对象excel

var

//获取workbook对象

var

//激活当前sheet

var

sel.moveToElementText(curTbl);

//把表格中的内容移到TextRange中

sel.select();

//全选TextRange中内容

sel.execCommand("Copy"

//复制TextRange中内容

oSheet.Paste();

//粘贴到活动的EXCEL中

oXL.Visible = true

//设置excel可见属性

}

function method2(tableid) //读取表格中每个单元到EXCEL中
{

var

var oXL = new ActiveXObject("Excel.Application"

//创建AX对象excel

var

//获取workbook对象

var

//激活当前sheet

var

//取得表格行数

for

{

var

//取得每行的列数

for

{

oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText;

//赋值

}

}

oXL.Visible = true

//设置excel可见属性

}

function

try

var allStr = ""

var curStr = ""


//alert("getXlsFromTbl");

if (inTblId != null && inTblId != "" && inTblId != "null"

curStr = getTblData(inTblId, inWindow);

}


if (curStr != null

allStr += curStr;

}

else

alert("你要导出的表不存在!"

return

}


var

doFileExport(fileName, allStr);


}

catch

alert("导出发生异常:" + e.name + "->" + e.description + "!"

}

}
//---------------------------------------------
function

var


//alert("getTblData is " + inWindow);

var


if (!!inWindow && inWindow != ""

if

return null

}

else

tblDocument = eval(inWindow).document;

}

}


var


var outStr = ""


if (curTbl != null

for (var

//alert("j is " + j);

for (var

//alert("i is " + i);

if

outStr += " "

rows -= 1;

}

outStr += curTbl.rows[j].cells[i].innerText + " "

if

for (var

outStr += " "

}

}

if

if

rows = curTbl.rows[j].cells[i].rowSpan - 1;

}

}

}

outStr += " "

}

}

else

outStr = null

alert(inTbl + "不存在!"

}

return

}

function

var d = new


var

var curMonth = ""

var curDate = ""

var curHour = ""

var curMinute = ""

var curSecond = ""


if

curMonth = "0"

}

if

curDate = "0"

}

if

curHour = "0"

}

if

curMinute = "0"

}

if

curSecond = "0"

}


var fileName = "leo_zhang" + "_" + curYear + curMonth + curDate + "_"

+ curHour + curMinute + curSecond + ".csv"

//alert(fileName);

return

}


function

var xlsWin = null


if (!!document.all("glbHideFrm"

xlsWin = glbHideFrm;

}

else

var

var

var openPara = "left="

+ ",top="

+ ",scrollbars=no,width=" + width + ",height="

xlsWin = window.open("" , "_blank"

}


xlsWin.document.write(inStr);

xlsWin.document.close();

xlsWin.document.execCommand('Saveas' , true

xlsWin.close();

}
</SCRIPT>

</BODY>
</HTML>
一、 直接拷贝整个表格到EXCEL中

二、 通过遍历表格,给EXCEL中相应的单元格赋值。

三、 把表格中的内容提取出来,利用IE的另存为.csv的格式。

各方法的好处:

1. 直接拷贝表格,能够保留表格中的原有的格式,比如,列,行的合并,对齐方式,底色等等,

2. 通过遍历表格,比较灵活,可以遍历表格某些需要部分的内容。

3. 利用IE的另存为,不用创建ActiveXObject对象,可以处理表格合并方面的问题。

各方法的缺点:

1. 可能弹出脚本错误:Automation不能创建对象。

解决方法:启用IE安全设置中的:对没有标记为安全的ActiveX控件进行初始化和脚本运行。

由于整个表格复制到EXCEL中,给表格加个标题,并加入到EXCEL中可能会遇到麻烦。

解决方法:首先在表格中加入第一行

<tr><td colspan="x" align="center"

X,表示整个表格的列数,复制完整个表格后,加如下代码,oSheet为当前活动的sheet.

oSheet.Range(oSheet.Cells(1, 1), oSheet.Cells(1, x)).value = "表格标题" ;//设置标题

oSheet.Rows(1).Font.Size = 16; //设置文字大小

oSheet.Rows(1).Font.Name = "宋体" ;//设置文字字体

注:以下属性我没用着,可能有用,也可能会报错

oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).mergecells=true ; //合并单元格

oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).Interior.ColorIndex=6;//设置底色?

oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).Font.ColorIndex=5;//设置字体色?

oSheet.Rows(1).RowHeight=20; //设置列高

oSheet.Cells(iRow,iCol).Halignment=’2’//设置字体居中

2. 可能弹出脚本错误:Automation不能创建对象(解决方法如上)。

表格内容写入到EXCEL中无表格线(未解决)

且有单元格合并时会有问题,解决方法:合并单元格后再写数据。

oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).mergecells=true ; //合并单元格

3. 表格内容写入到EXCEL中无表格线(未解决)

表格格式复杂时,会有问题,(rowspan>1 or colspan>1),解决方法:一般都是表头格式比较复杂,可先把表头写死,然后再循环写其他数据。


代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
"Generator" CONTENT="EditPlus"
"Author" CONTENT=""
"Keywords" CONTENT=""
"Description" CONTENT=""
</HEAD>

<BODY>
"tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0"

<tr>

<td colspan="5" align="center"

</tr>

<tr>

<td>列标题1</td>

<td>列标题2</td>

<td>列标题3</td>

<td>列标题4</td>

<td>列标题5</td>

</tr>

<tr>

<td>aaa</td>

<td>bbb</td>

<td>ccc</td>

<td>ddd</td>

<td>eee</td>

</tr>

<tr>

<td>AAA</td>

<td>BBB</td>

<td>CCC</td>

<td>DDD</td>

<td>EEE</td>

</tr>

<tr>

<td>FFF</td>

<td>GGG</td>

<td>HHH</td>

<td>III</td>

<td>JJJ</td>

</tr>


</table>
<input type="button" οnclick="javascript:method1('tableExcel');" value="第一种方法导入到EXCEL"

<input type="button" οnclick="javascript:method2('tableExcel');" value="第二种方法导入到EXCEL"

<input type="button" οnclick="javascript:getXlsFromTbl('tableExcel',null);" value="第三种方法导入到EXCEL"
<SCRIPT LANGUAGE="javascript"

function
{//整个表格拷贝到EXCEL中

var

var oXL = new ActiveXObject("Excel.Application"

//创建AX对象excel

var

//获取workbook对象

var

//激活当前sheet

var

sel.moveToElementText(curTbl);

//把表格中的内容移到TextRange中

sel.select();

//全选TextRange中内容

sel.execCommand("Copy"

//复制TextRange中内容

oSheet.Paste();

//粘贴到活动的EXCEL中

oXL.Visible = true

//设置excel可见属性

}

function method2(tableid) //读取表格中每个单元到EXCEL中
{

var

var oXL = new ActiveXObject("Excel.Application"

//创建AX对象excel

var

//获取workbook对象

var

//激活当前sheet

var

//取得表格行数

for

{

var

//取得每行的列数

for

{

oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText;

//赋值

}

}

oXL.Visible = true

//设置excel可见属性

}

function

try

var allStr = ""

var curStr = ""


//alert("getXlsFromTbl");

if (inTblId != null && inTblId != "" && inTblId != "null"

curStr = getTblData(inTblId, inWindow);

}


if (curStr != null

allStr += curStr;

}

else

alert("你要导出的表不存在!"

return

}


var

doFileExport(fileName, allStr);


}

catch

alert("导出发生异常:" + e.name + "->" + e.description + "!"

}

}
//---------------------------------------------
function

var


//alert("getTblData is " + inWindow);

var


if (!!inWindow && inWindow != ""

if

return null

}

else

tblDocument = eval(inWindow).document;

}

}


var


var outStr = ""


if (curTbl != null

for (var

//alert("j is " + j);

for (var

//alert("i is " + i);

if

outStr += " "

rows -= 1;

}

outStr += curTbl.rows[j].cells[i].innerText + " "

if

for (var

outStr += " "

}

}

if

if

rows = curTbl.rows[j].cells[i].rowSpan - 1;

}

}

}

outStr += " "

}

}

else

outStr = null

alert(inTbl + "不存在!"

}

return

}

function

var d = new


var

var curMonth = ""

var curDate = ""

var curHour = ""

var curMinute = ""

var curSecond = ""


if

curMonth = "0"

}

if

curDate = "0"

}

if

curHour = "0"

}

if

curMinute = "0"

}

if

curSecond = "0"

}


var fileName = "leo_zhang" + "_" + curYear + curMonth + curDate + "_"

+ curHour + curMinute + curSecond + ".csv"

//alert(fileName);

return

}


function

var xlsWin = null


if (!!document.all("glbHideFrm"

xlsWin = glbHideFrm;

}

else

var

var

var openPara = "left="

+ ",top="

+ ",scrollbars=no,width=" + width + ",height="

xlsWin = window.open("" , "_blank"

}


xlsWin.document.write(inStr);

xlsWin.document.close();

xlsWin.document.execCommand('Saveas' , true

xlsWin.close();

}
</SCRIPT>

</BODY>
</HTML>