精华内容
下载资源
问答
  • 三、 表格中的内容提取出来,利用IE的另存为.csv的格式。各方法的好处:1. 直接拷贝表格,能够保留表格中的原有的格式,比如,,行的合并,对齐方式,底色等等,2. 通过遍历表格,比较灵活,可以遍历表格某些...

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

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

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

    各方法的好处:

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

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

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

    各方法的缺点:

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

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

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

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

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

    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>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD>

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

    <tr>

    <td colspan="5" align="center">WEB页面导出为EXCEL文档的方法</td>

    </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 method1(tableid)
    {//整个表格拷贝到EXCEL中

    var curTbl = document.getElementById(tableid);

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

    //创建AX对象excel

    var oWB = oXL.Workbooks.Add();

    //获取workbook对象

    var oSheet = oWB.ActiveSheet;

    //激活当前sheet

    var sel = document.body.createTextRange();

    sel.moveToElementText(curTbl);

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

    sel.select();

    //全选TextRange中内容

    sel.execCommand("Copy");

    //复制TextRange中内容

    oSheet.Paste();

    //粘贴到活动的EXCEL中

    oXL.Visible = true;

    //设置excel可见属性

    }

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

    var curTbl = document.getElementById(tableid);

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

    //创建AX对象excel

    var oWB = oXL.Workbooks.Add();

    //获取workbook对象

    var oSheet = oWB.ActiveSheet;

    //激活当前sheet

    var Lenr = curTbl.rows.length;

    //取得表格行数

    for (i = 0; i < Lenr; i++)

    {

    var Lenc = curTbl.rows(i).cells.length;

    //取得每行的列数

    for (j = 0; j < Lenc; j++)

    {

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

    //赋值

    }

    }

    oXL.Visible = true;

    //设置excel可见属性

    }

    function getXlsFromTbl(inTblId, inWindow) {

    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 fileName = getExcelFileName();

    doFileExport(fileName, allStr);


    }

    catch(e) {

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

    }

    }
    //---------------------------------------------
    function getTblData(inTbl, inWindow) {

    var rows = 0;


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

    var tblDocument = document;


    if (!!inWindow && inWindow != "") {

    if (!document.all(inWindow)) {

    return null;

    }

    else {

    tblDocument = eval(inWindow).document;

    }

    }


    var curTbl = tblDocument.getElementById(inTbl);


    var outStr = "";


    if (curTbl != null) {

    for (var j = 0; j < curTbl.rows.length; j++) {

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

    for (var i = 0; i < curTbl.rows[j].cells.length; i++) {

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

    if (i == 0 && rows > 0) {

    outStr += "  ";

    rows -= 1;

    }

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

    if (curTbl.rows[j].cells[i].colSpan > 1) {

    for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) {

    outStr += "  ";

    }

    }

    if (i == 0) {

    if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {

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

    }

    }

    }

    outStr += " ";

    }

    }

    else {

    outStr = null;

    alert(inTbl + "不存在!");

    }

    return outStr;

    }

    function getExcelFileName() {

    var d = new Date();


    var curYear = d.getYear();

    var curMonth = "" + (d.getMonth() + 1);

    var curDate = "" + d.getDate();

    var curHour = "" + d.getHours();

    var curMinute = "" + d.getMinutes();

    var curSecond = "" + d.getSeconds();


    if (curMonth.length == 1) {

    curMonth = "0" + curMonth;

    }

    if (curDate.length == 1) {

    curDate = "0" + curDate;

    }

    if (curHour.length == 1) {

    curHour = "0" + curHour;

    }

    if (curMinute.length == 1) {

    curMinute = "0" + curMinute;

    }

    if (curSecond.length == 1) {

    curSecond = "0" + curSecond;

    }


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

    + curHour + curMinute + curSecond + ".csv";

    //alert(fileName);

    return fileName;

    }


    function doFileExport(inName, inStr) {

    var xlsWin = null;


    if (!!document.all("glbHideFrm")) {

    xlsWin = glbHideFrm;

    }

    else {

    var width = 6;

    var height = 4;

    var openPara = "left=" + (window.screen.width / 2 - width / 2)

    + ",top=" + (window.screen.height / 2 - height / 2)

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

    xlsWin = window.open("", "_blank", openPara);

    }


    xlsWin.document.write(inStr);

    xlsWin.document.close();

    xlsWin.document.execCommand('Saveas', true, inName);

    xlsWin.close();

    }
    </SCRIPT>

     </BODY>
    </HTML>

    展开全文
  • 三、 表格中的内容提取出来,利用IE的另存为.csv的格式。 各方法的好处: 1. 直接拷贝表格,能够保留表格中的原有的格式,比如,,行的合并,对齐方式,底色等等, 2. 通过遍历表格,比较灵活,可以...
    一、 直接拷贝整个表格到EXCEL中
    
    二、 通过遍历表格,给EXCEL中相应的单元格赋值。
    
    三、 把表格中的内容提取出来,利用IE的另存为.csv的格式。
    
    各方法的好处:
    
    1. 直接拷贝表格,能够保留表格中的原有的格式,比如,列,行的合并,对齐方式,底色等等,
    
    2. 通过遍历表格,比较灵活,可以遍历表格某些需要部分的内容。
    
    3. 利用IE的另存为,不用创建ActiveXObject对象,可以处理表格合并方面的问题。
    
    各方法的缺点:
    
    1. 可能弹出脚本错误:Automation不能创建对象。
    
    解决方法:启用IE安全设置中的:对没有标记为安全的ActiveX控件进行初始化和脚本运行。
    
    由于整个表格复制到EXCEL中,给表格加个标题,并加入到EXCEL中可能会遇到麻烦。
    
    解决方法:首先在表格中加入第一行
    
    <tr><td colspan="x" align="center">&</td></tr>
    
    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>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD>
    
     <BODY>
      <table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0">
    
    <tr>
    
    <td colspan="5" align="center">WEB页面导出为EXCEL文档的方法</td>
    
    </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 method1(tableid)
    {//整个表格拷贝到EXCEL中
    
    var curTbl = document.getElementById(tableid);
    
    var oXL = new ActiveXObject("Excel.Application");
    
    //创建AX对象excel
    
    var oWB = oXL.Workbooks.Add();
    
    //获取workbook对象
    
    var oSheet = oWB.ActiveSheet;
    
    //激活当前sheet
    
    var sel = document.body.createTextRange();
    
    sel.moveToElementText(curTbl);
    
    //把表格中的内容移到TextRange中
    
    sel.select();
    
    //全选TextRange中内容
    
    sel.execCommand("Copy");
    
    //复制TextRange中内容
    
    oSheet.Paste();
    
    //粘贴到活动的EXCEL中
    
    oXL.Visible = true;
    
    //设置excel可见属性
    
    }
    
    function method2(tableid) //读取表格中每个单元到EXCEL中
    {
    
    var curTbl = document.getElementById(tableid);
    
    var oXL = new ActiveXObject("Excel.Application");
    
    //创建AX对象excel
    
    var oWB = oXL.Workbooks.Add();
    
    //获取workbook对象
    
    var oSheet = oWB.ActiveSheet;
    
    //激活当前sheet
    
    var Lenr = curTbl.rows.length;
    
    //取得表格行数
    
    for (i = 0; i < Lenr; i++)
    
    {
    
    var Lenc = curTbl.rows(i).cells.length;
    
    //取得每行的列数
    
    for (j = 0; j < Lenc; j++)
    
    {
    
    oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText;
    
    //赋值
    
    }
    
    }
    
    oXL.Visible = true;
    
    //设置excel可见属性
    
    }
    
    function getXlsFromTbl(inTblId, inWindow) {
    
    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 fileName = getExcelFileName();
    
    doFileExport(fileName, allStr);
    
    
    }
    
    catch(e) {
    
    alert("导出发生异常:" + e.name + "->" + e.description + "!");
    
    }
    
    }
    //---------------------------------------------
    function getTblData(inTbl, inWindow) {
    
    var rows = 0;
    
    
    //alert("getTblData is " + inWindow);
    
    var tblDocument = document;
    
    
    if (!!inWindow && inWindow != "") {
    
    if (!document.all(inWindow)) {
    
    return null;
    
    }
    
    else {
    
    tblDocument = eval(inWindow).document;
    
    }
    
    }
    
    
    var curTbl = tblDocument.getElementById(inTbl);
    
    
    var outStr = "";
    
    
    if (curTbl != null) {
    
    for (var j = 0; j < curTbl.rows.length; j++) {
    
    //alert("j is " + j);
    
    for (var i = 0; i < curTbl.rows[j].cells.length; i++) {
    
    //alert("i is " + i);
    
    if (i == 0 && rows > 0) {
    
    outStr += "  ";
    
    rows -= 1;
    
    }
    
    outStr += curTbl.rows[j].cells[i].innerText + " ";
    
    if (curTbl.rows[j].cells[i].colSpan > 1) {
    
    for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) {
    
    outStr += "  ";
    
    }
    
    }
    
    if (i == 0) {
    
    if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {
    
    rows = curTbl.rows[j].cells[i].rowSpan - 1;
    
    }
    
    }
    
    }
    
    outStr += " ";
    
    }
    
    }
    
    else {
    
    outStr = null;
    
    alert(inTbl + "不存在!");
    
    }
    
    return outStr;
    
    }
    
    function getExcelFileName() {
    
    var d = new Date();
    
    
    var curYear = d.getYear();
    
    var curMonth = "" + (d.getMonth() + 1);
    
    var curDate = "" + d.getDate();
    
    var curHour = "" + d.getHours();
    
    var curMinute = "" + d.getMinutes();
    
    var curSecond = "" + d.getSeconds();
    
    
    if (curMonth.length == 1) {
    
    curMonth = "0" + curMonth;
    
    }
    
    if (curDate.length == 1) {
    
    curDate = "0" + curDate;
    
    }
    
    if (curHour.length == 1) {
    
    curHour = "0" + curHour;
    
    }
    
    if (curMinute.length == 1) {
    
    curMinute = "0" + curMinute;
    
    }
    
    if (curSecond.length == 1) {
    
    curSecond = "0" + curSecond;
    
    }
    
    
    var fileName = "leo_zhang" + "_" + curYear + curMonth + curDate + "_"
    
    + curHour + curMinute + curSecond + ".csv";
    
    //alert(fileName);
    
    return fileName;
    
    }
    
    
    function doFileExport(inName, inStr) {
    
    var xlsWin = null;
    
    
    if (!!document.all("glbHideFrm")) {
    
    xlsWin = glbHideFrm;
    
    }
    
    else {
    
    var width = 6;
    
    var height = 4;
    
    var openPara = "left=" + (window.screen.width / 2 - width / 2)
    
    + ",top=" + (window.screen.height / 2 - height / 2)
    
    + ",scrollbars=no,width=" + width + ",height=" + height;
    
    xlsWin = window.open("", "_blank", openPara);
    
    }
    
    
    xlsWin.document.write(inStr);
    
    xlsWin.document.close();
    
    xlsWin.document.execCommand('Saveas', true, inName);
    
    xlsWin.close();
    
    }
    </SCRIPT>
    
     </BODY>
    </HTML>
    
    
    
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhongzhengfeng/archive/2009/04/20/4094831.aspx

     

    展开全文
  •  三、 表格中的内容提取出来,利用IE的另存为.csv的格式。 各方法的好处: 1. 直接拷贝表格,能够保留表格中的原有的格式,比如,,行的合并,对齐方式,底色等等, 2. 通过遍历表格,比较灵活,可以遍历...
    1. 一、 直接拷贝整个表格到EXCEL中  
    2.   
    3. 二、 通过遍历表格,给EXCEL中相应的单元格赋值。  
    4.   
    5. 三、 把表格中的内容提取出来,利用IE的另存为.csv的格式。  
    6.   
    7. 各方法的好处:  
    8.   
    9. 1. 直接拷贝表格,能够保留表格中的原有的格式,比如,列,行的合并,对齐方式,底色等等,  
    10.   
    11. 2. 通过遍历表格,比较灵活,可以遍历表格某些需要部分的内容。  
    12.   
    13. 3. 利用IE的另存为,不用创建ActiveXObject对象,可以处理表格合并方面的问题。  
    14.   
    15. 各方法的缺点:  
    16.   
    17. 1. 可能弹出脚本错误:Automation不能创建对象。  
    18.   
    19. 解决方法:启用IE安全设置中的:对没有标记为安全的ActiveX控件进行初始化和脚本运行。  
    20.   
    21. 由于整个表格复制到EXCEL中,给表格加个标题,并加入到EXCEL中可能会遇到麻烦。  
    22.   
    23. 解决方法:首先在表格中加入第一行  
    24.   
    25. <tr><td colspan="x"  align="center" >&</td></tr>  
    26.   
    27. X,表示整个表格的列数,复制完整个表格后,加如下代码,oSheet为当前活动的sheet.  
    28.   
    29. oSheet.Range(oSheet.Cells(1, 1), oSheet.Cells(1, x)).value = "表格标题" ;//设置标题   
    30.   
    31. oSheet.Rows(1).Font.Size = 16; //设置文字大小   
    32.   
    33. oSheet.Rows(1).Font.Name = "宋体" ;//设置文字字体   
    34.   
    35. 注:以下属性我没用着,可能有用,也可能会报错  
    36.   
    37. oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).mergecells=true//合并单元格   
    38.   
    39. oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).Interior.ColorIndex=6;//设置底色?   
    40.   
    41. oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).Font.ColorIndex=5;//设置字体色?   
    42.   
    43. oSheet.Rows(1).RowHeight=20; //设置列高   
    44.   
    45. oSheet.Cells(iRow,iCol).Halignment=’2’//设置字体居中   
    46.   
    47. 2. 可能弹出脚本错误:Automation不能创建对象(解决方法如上)。  
    48.   
    49. 表格内容写入到EXCEL中无表格线(未解决)  
    50.   
    51. 且有单元格合并时会有问题,解决方法:合并单元格后再写数据。  
    52.   
    53. oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).mergecells=true//合并单元格   
    54.   
    55. 3. 表格内容写入到EXCEL中无表格线(未解决)  
    56.   
    57. 表格格式复杂时,会有问题,(rowspan>1 or colspan>1),解决方法:一般都是表头格式比较复杂,可先把表头写死,然后再循环写其他数据。  
    58.   
    59.   
    60. 代码如下:  
    61.   
    62. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >  
    63. <HTML>  
    64.  <HEAD>  
    65.   <TITLE> New Document </TITLE>  
    66.   <META NAME="Generator"  CONTENT="EditPlus" >  
    67.   <META NAME="Author"  CONTENT="" >  
    68.   <META NAME="Keywords"  CONTENT="" >  
    69.   <META NAME="Description"  CONTENT="" >  
    70.  </HEAD>  
    71.   
    72.  <BODY>  
    73.   <table id="tableExcel"  width="100%"  border="1"  cellspacing="0"  cellpadding="0" >  
    74.   
    75. <tr>  
    76.   
    77. <td colspan="5"  align="center" >WEB页面导出为EXCEL文档的方法</td>  
    78.   
    79. </tr>  
    80.   
    81. <tr>  
    82.   
    83. <td>列标题1</td>  
    84.   
    85. <td>列标题2</td>  
    86.   
    87. <td>列标题3</td>  
    88.   
    89. <td>列标题4</td>  
    90.   
    91. <td>列标题5</td>  
    92.   
    93. </tr>  
    94.   
    95. <tr>  
    96.   
    97. <td>aaa</td>  
    98.   
    99. <td>bbb</td>  
    100.   
    101. <td>ccc</td>  
    102.   
    103. <td>ddd</td>  
    104.   
    105. <td>eee</td>  
    106.   
    107. </tr>  
    108.   
    109. <tr>  
    110.   
    111. <td>AAA</td>  
    112.   
    113. <td>BBB</td>  
    114.   
    115. <td>CCC</td>  
    116.   
    117. <td>DDD</td>  
    118.   
    119. <td>EEE</td>  
    120.   
    121. </tr>  
    122.   
    123. <tr>  
    124.   
    125. <td>FFF</td>  
    126.   
    127. <td>GGG</td>  
    128.   
    129. <td>HHH</td>  
    130.   
    131. <td>III</td>  
    132.   
    133. <td>JJJ</td>  
    134.   
    135. </tr>  
    136.   
    137.   
    138. </table>  
    139. <input type="button"  οnclick="javascript:method1('tableExcel');"  value="第一种方法导入到EXCEL" >  
    140.   
    141. <input type="button"  οnclick="javascript:method2('tableExcel');"  value="第二种方法导入到EXCEL" >  
    142.   
    143. <input type="button"  οnclick="javascript:getXlsFromTbl('tableExcel',null);"  value="第三种方法导入到EXCEL" >  
    144. <SCRIPT LANGUAGE="javascript" >  
    145.   
    146. function  method1(tableid)  
    147. {//整个表格拷贝到EXCEL中   
    148.   
    149. var  curTbl = document.getElementById(tableid);  
    150.   
    151. var  oXL = new  ActiveXObject("Excel.Application" );  
    152.   
    153. //创建AX对象excel   
    154.   
    155. var  oWB = oXL.Workbooks.Add();  
    156.   
    157. //获取workbook对象   
    158.   
    159. var  oSheet = oWB.ActiveSheet;  
    160.   
    161. //激活当前sheet   
    162.   
    163. var  sel = document.body.createTextRange();  
    164.   
    165. sel.moveToElementText(curTbl);  
    166.   
    167. //把表格中的内容移到TextRange中   
    168.   
    169. sel.select();  
    170.   
    171. //全选TextRange中内容   
    172.   
    173. sel.execCommand("Copy" );  
    174.   
    175. //复制TextRange中内容   
    176.   
    177. oSheet.Paste();  
    178.   
    179. //粘贴到活动的EXCEL中   
    180.   
    181. oXL.Visible = true ;  
    182.   
    183. //设置excel可见属性   
    184.   
    185. }  
    186.   
    187. function  method2(tableid) //读取表格中每个单元到EXCEL中   
    188. {  
    189.   
    190. var  curTbl = document.getElementById(tableid);  
    191.   
    192. var  oXL = new  ActiveXObject("Excel.Application" );  
    193.   
    194. //创建AX对象excel   
    195.   
    196. var  oWB = oXL.Workbooks.Add();  
    197.   
    198. //获取workbook对象   
    199.   
    200. var  oSheet = oWB.ActiveSheet;  
    201.   
    202. //激活当前sheet   
    203.   
    204. var  Lenr = curTbl.rows.length;  
    205.   
    206. //取得表格行数   
    207.   
    208. for  (i = 0; i < Lenr; i++)  
    209.   
    210. {  
    211.   
    212. var  Lenc = curTbl.rows(i).cells.length;  
    213.   
    214. //取得每行的列数   
    215.   
    216. for  (j = 0; j < Lenc; j++)  
    217.   
    218. {  
    219.   
    220. oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText;  
    221.   
    222. //赋值   
    223.   
    224. }  
    225.   
    226. }  
    227.   
    228. oXL.Visible = true ;  
    229.   
    230. //设置excel可见属性   
    231.   
    232. }  
    233.   
    234. function  getXlsFromTbl(inTblId, inWindow) {  
    235.   
    236. try  {  
    237.   
    238. var  allStr = "" ;  
    239.   
    240. var  curStr = "" ;  
    241.   
    242.   
    243. //alert("getXlsFromTbl");   
    244.   
    245. if  (inTblId != null  && inTblId != ""  && inTblId != "null" ) {  
    246.   
    247. curStr = getTblData(inTblId, inWindow);  
    248.   
    249. }  
    250.   
    251.   
    252. if  (curStr != null ) {  
    253.   
    254. allStr += curStr;  
    255.   
    256. }  
    257.   
    258. else  {  
    259.   
    260. alert("你要导出的表不存在!" );  
    261.   
    262. return ;  
    263.   
    264. }  
    265.   
    266.   
    267. var  fileName = getExcelFileName();  
    268.   
    269. doFileExport(fileName, allStr);  
    270.   
    271.   
    272. }  
    273.   
    274. catch (e) {  
    275.   
    276. alert("导出发生异常:"  + e.name + "->"  + e.description + "!" );  
    277.   
    278. }  
    279.   
    280. }  
    281. //---------------------------------------------   
    282. function  getTblData(inTbl, inWindow) {  
    283.   
    284. var  rows = 0;  
    285.   
    286.   
    287. //alert("getTblData is " + inWindow);   
    288.   
    289. var  tblDocument = document;  
    290.   
    291.   
    292. if  (!!inWindow && inWindow != "" ) {  
    293.   
    294. if  (!document.all(inWindow)) {  
    295.   
    296. return  null ;  
    297.   
    298. }  
    299.   
    300. else  {  
    301.   
    302. tblDocument = eval(inWindow).document;  
    303.   
    304. }  
    305.   
    306. }  
    307.   
    308.   
    309. var  curTbl = tblDocument.getElementById(inTbl);  
    310.   
    311.   
    312. var  outStr = "" ;  
    313.   
    314.   
    315. if  (curTbl != null ) {  
    316.   
    317. for  (var  j = 0; j < curTbl.rows.length; j++) {  
    318.   
    319. //alert("j is " + j);   
    320.   
    321. for  (var  i = 0; i < curTbl.rows[j].cells.length; i++) {  
    322.   
    323. //alert("i is " + i);   
    324.   
    325. if  (i == 0 && rows > 0) {  
    326.   
    327. outStr += "  " ;  
    328.   
    329. rows -= 1;  
    330.   
    331. }  
    332.   
    333. outStr += curTbl.rows[j].cells[i].innerText + " " ;  
    334.   
    335. if  (curTbl.rows[j].cells[i].colSpan > 1) {  
    336.   
    337. for  (var  k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) {  
    338.   
    339. outStr += "  " ;  
    340.   
    341. }  
    342.   
    343. }  
    344.   
    345. if  (i == 0) {  
    346.   
    347. if  (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {  
    348.   
    349. rows = curTbl.rows[j].cells[i].rowSpan - 1;  
    350.   
    351. }  
    352.   
    353. }  
    354.   
    355. }  
    356.   
    357. outStr += " " ;  
    358.   
    359. }  
    360.   
    361. }  
    362.   
    363. else  {  
    364.   
    365. outStr = null ;  
    366.   
    367. alert(inTbl + "不存在!" );  
    368.   
    369. }  
    370.   
    371. return  outStr;  
    372.   
    373. }  
    374.   
    375. function  getExcelFileName() {  
    376.   
    377. var  d = new  Date();  
    378.   
    379.   
    380. var  curYear = d.getYear();  
    381.   
    382. var  curMonth = ""  + (d.getMonth() + 1);  
    383.   
    384. var  curDate = ""  + d.getDate();  
    385.   
    386. var  curHour = ""  + d.getHours();  
    387.   
    388. var  curMinute = ""  + d.getMinutes();  
    389.   
    390. var  curSecond = ""  + d.getSeconds();  
    391.   
    392.   
    393. if  (curMonth.length == 1) {  
    394.   
    395. curMonth = "0"  + curMonth;  
    396.   
    397. }  
    398.   
    399. if  (curDate.length == 1) {  
    400.   
    401. curDate = "0"  + curDate;  
    402.   
    403. }  
    404.   
    405. if  (curHour.length == 1) {  
    406.   
    407. curHour = "0"  + curHour;  
    408.   
    409. }  
    410.   
    411. if  (curMinute.length == 1) {  
    412.   
    413. curMinute = "0"  + curMinute;  
    414.   
    415. }  
    416.   
    417. if  (curSecond.length == 1) {  
    418.   
    419. curSecond = "0"  + curSecond;  
    420.   
    421. }  
    422.   
    423.   
    424. var  fileName = "leo_zhang"  + "_"  + curYear + curMonth + curDate + "_"   
    425.   
    426. + curHour + curMinute + curSecond + ".csv" ;  
    427.   
    428. //alert(fileName);   
    429.   
    430. return  fileName;  
    431.   
    432. }  
    433.   
    434.   
    435. function  doFileExport(inName, inStr) {  
    436.   
    437. var  xlsWin = null ;  
    438.   
    439.   
    440. if  (!!document.all("glbHideFrm" )) {  
    441.   
    442. xlsWin = glbHideFrm;  
    443.   
    444. }  
    445.   
    446. else  {  
    447.   
    448. var  width = 6;  
    449.   
    450. var  height = 4;  
    451.   
    452. var  openPara = "left="  + (window.screen.width / 2 - width / 2)  
    453.   
    454. ",top="  + (window.screen.height / 2 - height / 2)  
    455.   
    456. ",scrollbars=no,width="  + width + ",height="  + height;  
    457.   
    458. xlsWin = window.open("""_blank" , openPara);  
    459.   
    460. }  
    461.   
    462.   
    463. xlsWin.document.write(inStr);  
    464.   
    465. xlsWin.document.close();  
    466.   
    467. xlsWin.document.execCommand('Saveas'true , inName);  
    468.   
    469. xlsWin.close();  
    470.   
    471. }  
    472. </SCRIPT>  
    473.   
    474.  </BODY>  
    475. </HTML> 
    476. 一、 直接拷贝整个表格到EXCEL中  
    477.   
    478. 二、 通过遍历表格,给EXCEL中相应的单元格赋值。  
    479.   
    480. 三、 把表格中的内容提取出来,利用IE的另存为.csv的格式。  
    481.   
    482. 各方法的好处:  
    483.   
    484. 1. 直接拷贝表格,能够保留表格中的原有的格式,比如,列,行的合并,对齐方式,底色等等,  
    485.   
    486. 2. 通过遍历表格,比较灵活,可以遍历表格某些需要部分的内容。  
    487.   
    488. 3. 利用IE的另存为,不用创建ActiveXObject对象,可以处理表格合并方面的问题。  
    489.   
    490. 各方法的缺点:  
    491.   
    492. 1. 可能弹出脚本错误:Automation不能创建对象。  
    493.   
    494. 解决方法:启用IE安全设置中的:对没有标记为安全的ActiveX控件进行初始化和脚本运行。  
    495.   
    496. 由于整个表格复制到EXCEL中,给表格加个标题,并加入到EXCEL中可能会遇到麻烦。  
    497.   
    498. 解决方法:首先在表格中加入第一行  
    499.   
    500. <tr><td colspan="x"  align="center" >&</td></tr>  
    501.   
    502. X,表示整个表格的列数,复制完整个表格后,加如下代码,oSheet为当前活动的sheet.  
    503.   
    504. oSheet.Range(oSheet.Cells(1, 1), oSheet.Cells(1, x)).value = "表格标题" ;//设置标题   
    505.   
    506. oSheet.Rows(1).Font.Size = 16; //设置文字大小   
    507.   
    508. oSheet.Rows(1).Font.Name = "宋体" ;//设置文字字体   
    509.   
    510. 注:以下属性我没用着,可能有用,也可能会报错  
    511.   
    512. oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).mergecells=true//合并单元格   
    513.   
    514. oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).Interior.ColorIndex=6;//设置底色?   
    515.   
    516. oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).Font.ColorIndex=5;//设置字体色?   
    517.   
    518. oSheet.Rows(1).RowHeight=20; //设置列高   
    519.   
    520. oSheet.Cells(iRow,iCol).Halignment=’2’//设置字体居中   
    521.   
    522. 2. 可能弹出脚本错误:Automation不能创建对象(解决方法如上)。  
    523.   
    524. 表格内容写入到EXCEL中无表格线(未解决)  
    525.   
    526. 且有单元格合并时会有问题,解决方法:合并单元格后再写数据。  
    527.   
    528. oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(1,14)).mergecells=true//合并单元格   
    529.   
    530. 3. 表格内容写入到EXCEL中无表格线(未解决)  
    531.   
    532. 表格格式复杂时,会有问题,(rowspan>1 or colspan>1),解决方法:一般都是表头格式比较复杂,可先把表头写死,然后再循环写其他数据。  
    533.   
    534.   
    535. 代码如下:  
    536.   
    537. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >  
    538. <HTML>  
    539.  <HEAD>  
    540.   <TITLE> New Document </TITLE>  
    541.   <META NAME="Generator"  CONTENT="EditPlus" >  
    542.   <META NAME="Author"  CONTENT="" >  
    543.   <META NAME="Keywords"  CONTENT="" >  
    544.   <META NAME="Description"  CONTENT="" >  
    545.  </HEAD>  
    546.   
    547.  <BODY>  
    548.   <table id="tableExcel"  width="100%"  border="1"  cellspacing="0"  cellpadding="0" >  
    549.   
    550. <tr>  
    551.   
    552. <td colspan="5"  align="center" >WEB页面导出为EXCEL文档的方法</td>  
    553.   
    554. </tr>  
    555.   
    556. <tr>  
    557.   
    558. <td>列标题1</td>  
    559.   
    560. <td>列标题2</td>  
    561.   
    562. <td>列标题3</td>  
    563.   
    564. <td>列标题4</td>  
    565.   
    566. <td>列标题5</td>  
    567.   
    568. </tr>  
    569.   
    570. <tr>  
    571.   
    572. <td>aaa</td>  
    573.   
    574. <td>bbb</td>  
    575.   
    576. <td>ccc</td>  
    577.   
    578. <td>ddd</td>  
    579.   
    580. <td>eee</td>  
    581.   
    582. </tr>  
    583.   
    584. <tr>  
    585.   
    586. <td>AAA</td>  
    587.   
    588. <td>BBB</td>  
    589.   
    590. <td>CCC</td>  
    591.   
    592. <td>DDD</td>  
    593.   
    594. <td>EEE</td>  
    595.   
    596. </tr>  
    597.   
    598. <tr>  
    599.   
    600. <td>FFF</td>  
    601.   
    602. <td>GGG</td>  
    603.   
    604. <td>HHH</td>  
    605.   
    606. <td>III</td>  
    607.   
    608. <td>JJJ</td>  
    609.   
    610. </tr>  
    611.   
    612.   
    613. </table>  
    614. <input type="button"  οnclick="javascript:method1('tableExcel');"  value="第一种方法导入到EXCEL" >  
    615.   
    616. <input type="button"  οnclick="javascript:method2('tableExcel');"  value="第二种方法导入到EXCEL" >  
    617.   
    618. <input type="button"  οnclick="javascript:getXlsFromTbl('tableExcel',null);"  value="第三种方法导入到EXCEL" >  
    619. <SCRIPT LANGUAGE="javascript" >  
    620.   
    621. function  method1(tableid)  
    622. {//整个表格拷贝到EXCEL中   
    623.   
    624. var  curTbl = document.getElementById(tableid);  
    625.   
    626. var  oXL = new  ActiveXObject("Excel.Application" );  
    627.   
    628. //创建AX对象excel   
    629.   
    630. var  oWB = oXL.Workbooks.Add();  
    631.   
    632. //获取workbook对象   
    633.   
    634. var  oSheet = oWB.ActiveSheet;  
    635.   
    636. //激活当前sheet   
    637.   
    638. var  sel = document.body.createTextRange();  
    639.   
    640. sel.moveToElementText(curTbl);  
    641.   
    642. //把表格中的内容移到TextRange中   
    643.   
    644. sel.select();  
    645.   
    646. //全选TextRange中内容   
    647.   
    648. sel.execCommand("Copy" );  
    649.   
    650. //复制TextRange中内容   
    651.   
    652. oSheet.Paste();  
    653.   
    654. //粘贴到活动的EXCEL中   
    655.   
    656. oXL.Visible = true ;  
    657.   
    658. //设置excel可见属性   
    659.   
    660. }  
    661.   
    662. function  method2(tableid) //读取表格中每个单元到EXCEL中   
    663. {  
    664.   
    665. var  curTbl = document.getElementById(tableid);  
    666.   
    667. var  oXL = new  ActiveXObject("Excel.Application" );  
    668.   
    669. //创建AX对象excel   
    670.   
    671. var  oWB = oXL.Workbooks.Add();  
    672.   
    673. //获取workbook对象   
    674.   
    675. var  oSheet = oWB.ActiveSheet;  
    676.   
    677. //激活当前sheet   
    678.   
    679. var  Lenr = curTbl.rows.length;  
    680.   
    681. //取得表格行数   
    682.   
    683. for  (i = 0; i < Lenr; i++)  
    684.   
    685. {  
    686.   
    687. var  Lenc = curTbl.rows(i).cells.length;  
    688.   
    689. //取得每行的列数   
    690.   
    691. for  (j = 0; j < Lenc; j++)  
    692.   
    693. {  
    694.   
    695. oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText;  
    696.   
    697. //赋值   
    698.   
    699. }  
    700.   
    701. }  
    702.   
    703. oXL.Visible = true ;  
    704.   
    705. //设置excel可见属性   
    706.   
    707. }  
    708.   
    709. function  getXlsFromTbl(inTblId, inWindow) {  
    710.   
    711. try  {  
    712.   
    713. var  allStr = "" ;  
    714.   
    715. var  curStr = "" ;  
    716.   
    717.   
    718. //alert("getXlsFromTbl");   
    719.   
    720. if  (inTblId != null  && inTblId != ""  && inTblId != "null" ) {  
    721.   
    722. curStr = getTblData(inTblId, inWindow);  
    723.   
    724. }  
    725.   
    726.   
    727. if  (curStr != null ) {  
    728.   
    729. allStr += curStr;  
    730.   
    731. }  
    732.   
    733. else  {  
    734.   
    735. alert("你要导出的表不存在!" );  
    736.   
    737. return ;  
    738.   
    739. }  
    740.   
    741.   
    742. var  fileName = getExcelFileName();  
    743.   
    744. doFileExport(fileName, allStr);  
    745.   
    746.   
    747. }  
    748.   
    749. catch (e) {  
    750.   
    751. alert("导出发生异常:"  + e.name + "->"  + e.description + "!" );  
    752.   
    753. }  
    754.   
    755. }  
    756. //---------------------------------------------   
    757. function  getTblData(inTbl, inWindow) {  
    758.   
    759. var  rows = 0;  
    760.   
    761.   
    762. //alert("getTblData is " + inWindow);   
    763.   
    764. var  tblDocument = document;  
    765.   
    766.   
    767. if  (!!inWindow && inWindow != "" ) {  
    768.   
    769. if  (!document.all(inWindow)) {  
    770.   
    771. return  null ;  
    772.   
    773. }  
    774.   
    775. else  {  
    776.   
    777. tblDocument = eval(inWindow).document;  
    778.   
    779. }  
    780.   
    781. }  
    782.   
    783.   
    784. var  curTbl = tblDocument.getElementById(inTbl);  
    785.   
    786.   
    787. var  outStr = "" ;  
    788.   
    789.   
    790. if  (curTbl != null ) {  
    791.   
    792. for  (var  j = 0; j < curTbl.rows.length; j++) {  
    793.   
    794. //alert("j is " + j);   
    795.   
    796. for  (var  i = 0; i < curTbl.rows[j].cells.length; i++) {  
    797.   
    798. //alert("i is " + i);   
    799.   
    800. if  (i == 0 && rows > 0) {  
    801.   
    802. outStr += "  " ;  
    803.   
    804. rows -= 1;  
    805.   
    806. }  
    807.   
    808. outStr += curTbl.rows[j].cells[i].innerText + " " ;  
    809.   
    810. if  (curTbl.rows[j].cells[i].colSpan > 1) {  
    811.   
    812. for  (var  k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) {  
    813.   
    814. outStr += "  " ;  
    815.   
    816. }  
    817.   
    818. }  
    819.   
    820. if  (i == 0) {  
    821.   
    822. if  (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {  
    823.   
    824. rows = curTbl.rows[j].cells[i].rowSpan - 1;  
    825.   
    826. }  
    827.   
    828. }  
    829.   
    830. }  
    831.   
    832. outStr += " " ;  
    833.   
    834. }  
    835.   
    836. }  
    837.   
    838. else  {  
    839.   
    840. outStr = null ;  
    841.   
    842. alert(inTbl + "不存在!" );  
    843.   
    844. }  
    845.   
    846. return  outStr;  
    847.   
    848. }  
    849.   
    850. function  getExcelFileName() {  
    851.   
    852. var  d = new  Date();  
    853.   
    854.   
    855. var  curYear = d.getYear();  
    856.   
    857. var  curMonth = ""  + (d.getMonth() + 1);  
    858.   
    859. var  curDate = ""  + d.getDate();  
    860.   
    861. var  curHour = ""  + d.getHours();  
    862.   
    863. var  curMinute = ""  + d.getMinutes();  
    864.   
    865. var  curSecond = ""  + d.getSeconds();  
    866.   
    867.   
    868. if  (curMonth.length == 1) {  
    869.   
    870. curMonth = "0"  + curMonth;  
    871.   
    872. }  
    873.   
    874. if  (curDate.length == 1) {  
    875.   
    876. curDate = "0"  + curDate;  
    877.   
    878. }  
    879.   
    880. if  (curHour.length == 1) {  
    881.   
    882. curHour = "0"  + curHour;  
    883.   
    884. }  
    885.   
    886. if  (curMinute.length == 1) {  
    887.   
    888. curMinute = "0"  + curMinute;  
    889.   
    890. }  
    891.   
    892. if  (curSecond.length == 1) {  
    893.   
    894. curSecond = "0"  + curSecond;  
    895.   
    896. }  
    897.   
    898.   
    899. var  fileName = "leo_zhang"  + "_"  + curYear + curMonth + curDate + "_"   
    900.   
    901. + curHour + curMinute + curSecond + ".csv" ;  
    902.   
    903. //alert(fileName);   
    904.   
    905. return  fileName;  
    906.   
    907. }  
    908.   
    909.   
    910. function  doFileExport(inName, inStr) {  
    911.   
    912. var  xlsWin = null ;  
    913.   
    914.   
    915. if  (!!document.all("glbHideFrm" )) {  
    916.   
    917. xlsWin = glbHideFrm;  
    918.   
    919. }  
    920.   
    921. else  {  
    922.   
    923. var  width = 6;  
    924.   
    925. var  height = 4;  
    926.   
    927. var  openPara = "left="  + (window.screen.width / 2 - width / 2)  
    928.   
    929. ",top="  + (window.screen.height / 2 - height / 2)  
    930.   
    931. ",scrollbars=no,width="  + width + ",height="  + height;  
    932.   
    933. xlsWin = window.open("""_blank" , openPara);  
    934.   
    935. }  
    936.   
    937.   
    938. xlsWin.document.write(inStr);  
    939.   
    940. xlsWin.document.close();  
    941.   
    942. xlsWin.document.execCommand('Saveas'true , inName);  
    943.   
    944. xlsWin.close();  
    945.   
    946. }  
    947. </SCRIPT>  
    948.   
    949.  </BODY>  
    950. </HTML> 
    展开全文
  • )可以被用来分割某些特殊字符。举例如下: $first = 'Hello'; $second = "World"; $full1 = "$first $second"; # 产生 Hello World $full2 = '$first $second';# 产生 $first $second 可以将字符和数字利用运算...
  • js导出到excel的3种方法

    千次阅读 2010-08-24 14:07:00
      三、 表格中的内容提取出来,利用IE的另存为.csv的格式。   各方法的好处:   1. 直接拷贝表格,能够保留表格中的原有的格式,比如,,行的合并,对齐方式,底色等等,...

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

     

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

     

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

     

    各方法的好处:

     

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

     

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

     

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

     

    各方法的缺点:

     

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

     

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

     

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

     

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

     

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

     

    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>

      <META NAME="Generator" CONTENT="EditPlus">

      <META NAME="Author" CONTENT="">

      <META NAME="Keywords" CONTENT="">

      <META NAME="Description" CONTENT="">

     </HEAD>

     

     <BODY>

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

     

    <tr>

     

    <td colspan="5" align="center">WEB页面导出为EXCEL文档的方法</td>

     

    </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 method1(tableid)

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

     

    var curTbl = document.getElementById(tableid);

     

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

     

    //创建AX对象excel

     

    var oWB = oXL.Workbooks.Add();

     

    //获取workbook对象

     

    var oSheet = oWB.ActiveSheet;

     

    //激活当前sheet

     

    var sel = document.body.createTextRange();

     

    sel.moveToElementText(curTbl);

     

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

     

    sel.select();

     

    //全选TextRange中内容

     

    sel.execCommand("Copy");

     

    //复制TextRange中内容

     

    oSheet.Paste();

     

    //粘贴到活动的EXCEL中

     

    oXL.Visible = true;

     

    //设置excel可见属性

     

    }

     

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

    {

     

    var curTbl = document.getElementById(tableid);

     

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

     

    //创建AX对象excel

     

    var oWB = oXL.Workbooks.Add();

     

    //获取workbook对象

     

    var oSheet = oWB.ActiveSheet;

     

    //激活当前sheet

     

    var Lenr = curTbl.rows.length;

     

    //取得表格行数

     

    for (i = 0; i < Lenr; i++)

     

    {

     

    var Lenc = curTbl.rows(i).cells.length;

     

    //取得每行的列数

     

    for (j = 0; j < Lenc; j++)

     

    {

     

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

     

    //赋值

     

    }

     

    }

     

    oXL.Visible = true;

     

    //设置excel可见属性

     

    }

     

    function getXlsFromTbl(inTblId, inWindow) {

     

    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 fileName = getExcelFileName();

     

    doFileExport(fileName, allStr);

     

     

    }

     

    catch(e) {

     

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

     

    }

     

    }

    //---------------------------------------------

    function getTblData(inTbl, inWindow) {

     

    var rows = 0;

     

     

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

     

    var tblDocument = document;

     

     

    if (!!inWindow && inWindow != "") {

     

    if (!document.all(inWindow)) {

     

    return null;

     

    }

     

    else {

     

    tblDocument = eval(inWindow).document;

     

    }

     

    }

     

     

    var curTbl = tblDocument.getElementById(inTbl);

     

     

    var outStr = "";

     

     

    if (curTbl != null) {

     

    for (var j = 0; j < curTbl.rows.length; j++) {

     

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

     

    for (var i = 0; i < curTbl.rows[j].cells.length; i++) {

     

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

     

    if (i == 0 && rows > 0) {

     

    outStr += "  ";

     

    rows -= 1;

     

    }

     

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

     

    if (curTbl.rows[j].cells[i].colSpan > 1) {

     

    for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) {

     

    outStr += "  ";

     

    }

     

    }

     

    if (i == 0) {

     

    if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {

     

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

     

    }

     

    }

     

    }

     

    outStr += " ";

     

    }

     

    }

     

    else {

     

    outStr = null;

     

    alert(inTbl + "不存在!");

     

    }

     

    return outStr;

     

    }

     

    function getExcelFileName() {

     

    var d = new Date();

     

     

    var curYear = d.getYear();

     

    var curMonth = "" + (d.getMonth() + 1);

     

    var curDate = "" + d.getDate();

     

    var curHour = "" + d.getHours();

     

    var curMinute = "" + d.getMinutes();

     

    var curSecond = "" + d.getSeconds();

     

     

    if (curMonth.length == 1) {

     

    curMonth = "0" + curMonth;

     

    }

     

    if (curDate.length == 1) {

     

    curDate = "0" + curDate;

     

    }

     

    if (curHour.length == 1) {

     

    curHour = "0" + curHour;

     

    }

     

    if (curMinute.length == 1) {

     

    curMinute = "0" + curMinute;

     

    }

     

    if (curSecond.length == 1) {

     

    curSecond = "0" + curSecond;

     

    }

     

     

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

     

    + curHour + curMinute + curSecond + ".csv";

     

    //alert(fileName);

     

    return fileName;

     

    }

     

     

    function doFileExport(inName, inStr) {

     

    var xlsWin = null;

     

     

    if (!!document.all("glbHideFrm")) {

     

    xlsWin = glbHideFrm;

     

    }

     

    else {

     

    var width = 6;

     

    var height = 4;

     

    var openPara = "left=" + (window.screen.width / 2 - width / 2)

     

    + ",top=" + (window.screen.height / 2 - height / 2)

     

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

     

    xlsWin = window.open("", "_blank", openPara);

     

    }

     

     

    xlsWin.document.write(inStr);

     

    xlsWin.document.close();

     

    xlsWin.document.execCommand('Saveas', true, inName);

     

    xlsWin.close();

     

    }

    </SCRIPT>

     

     </BODY>

    </HTML>

     

     

     

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhongzhengfeng/archive/2009/04/20/4094831.aspx

    展开全文
  • Excel新增工具集

    2011-12-20 09:30:27
    9、当前工作表中行记录按某一列指定的类别拆分成组工作簿:类似Excel自带的高级筛选功能,可以把一个年级各班都在同一个工作表上的学生名单(成绩单)拆分成每个班的名单(成绩单),发给班主任。 (八)同一工作簿...
  • php高级开发教程说明

    2008-11-27 11:39:22
    如,对个依赖额外数据库提取层的数据库支持的应用程序,其数据库提取层仅能接收文本数 据,但后来你发现也需要用它接收数值性的数据,通过工作区转换,可以使它能够接收数值性 数据。但后来你又感觉到这个工作区...
  •  Oracle 数据库中的SQL是当今市场上功能最强大的SQL实现之,而本书全面展示了这工具的威力。如何才能让更多人有效地学习和掌握SQL呢?Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习...
  •  Oracle 数据库中的SQL是当今市场上功能最强大的SQL实现之,而本书全面展示了这工具的威力。如何才能让更多人有效地学习和掌握SQL呢?Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习...
  • 超级数据恢复软件

    2013-09-11 08:43:27
    对于删除或者格式化掉的FAT/FAT32分区,如果有目录里面文件特别多的情况就会形成目录碎片,别的软件恢复后出来大量多个小目录很不直观,而我们的软件具有FAT目录项碎片重组功能,可能各个目录还原回原来的位置,...
  • 对于删除或者格式化掉的FAT/FAT32分区,如果有目录里面文件特别多的情况就会形成目录碎片,别的软件恢复后出来大量多个小目录很不直观,而我们的软件具有FAT目录项碎片重组功能,可能各个目录还原回原来的位置,...
  • 超级FAT目录重组算法,对于删除或者格式化掉的FAT/FAT32分区,如果有目录里面文件特别多的情况就会形成目录碎片,别的软件恢复后出来大量多个小目录很不直观,而我们的软件具有FAT目录项碎片重组功能,可能各个...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    3.18 需要根据条件把一个复杂的表达式赋给两个变量中的一个。可以用下面这样的代码吗?((condition) ? a : b)= complicated_expression; 41  3.19 我有些代码包含这样的表达式。a ? b=c : d 有些编译器可以接受...
  • oracle数据库经典题目

    2011-02-17 15:05:20
    8. 下列哪个函数可以把一中的所有值相加求和? ( B ) A MAX B. SUM C. COUNT D. AVG 9. 下列哪个子句是SELECT语句中必选项?( A ) A. FROM B.WHERE C.HAVING D. ORDER BY 10. 下列哪个子句实现对一个结果集进行...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    3.18 需要根据条件把一个复杂的表达式赋给两个变量中的一个。可以用下面这样的代码吗?((condition)?a:b)=complicated_expression; 3.19 我有些代码包含这样的表达式。a?b=c:d有些编译器可以接受,有些却不能。为...
  • 3.18 需要根据条件把一个复杂的表达式赋给两个变量中的一个。可以用下面这样的代码吗?((condition) ? a : b)= complicated_expression; 70 3.19 我有些代码包含这样的表达式。a ? b=c : d 有些编译器可以接受,...
  • 3.18 需要根据条件把一个复杂的表达式赋给两个变量中的一个。可以用下面这样的代码吗?((condition) ? a : b)= complicated_expression; 70 3.19 我有些代码包含这样的表达式。a ? b=c : d 有些编译器可以接受,...
  • 3.18 需要根据条件把一个复杂的表达式赋给两个变量中的一个。可以用下面这样的代码吗?((condition) ? a : b)= complicated_expression; 41  3.19 我有些代码包含这样的表达式。a ? b=c : d 有些编译器可以接受...
  • 这部分的最后章,第8章讨论了恶意软件,如病毒和蠕虫,并简要介绍了这一内容。这章还展示了对真正的恶意程序进行逆向工程的实例过程,这实际上就是恶意软件研究人员为了研究恶意程序、估计它们带来的危险、并...
  • reversing :逆向工程解密

    热门讨论 2012-09-04 11:40:49
    这部分的最后章,第8章讨论了恶意软件,如病毒和蠕虫,并简要介绍了这一内容。这章还展示了对真正的恶意程序进行逆向工程的实例过程,这实际上就是恶意软件研究人员为了研究恶意程序、估计它们带来的危险、并...
  • 软件测试规范

    2018-04-23 09:16:12
    .概述 ............................................................................................................................................................ 1 二 软件测试理论 ....................
  • Reversing:逆向工程揭密

    热门讨论 2010-06-21 17:27:22
    这与研究自然现象的科学研究有些类似,区别就在于一般没有人会科学研究看做逆向工程,这仅仅是因为没有人确切地知道自然算不算是工程制品。 对软件而言,逆向工程归结起来就是拿个既没有源代码又没有准确文献...
  • 本书描述的是在逆向与反逆向之间展开的场旷日持久的拉锯战。作者Eldad Eilam以个解说人的身份为我们详尽地评述了双方使用的每招每式的优点与不足。 书中包含的主要内容有:操作系统的逆向工程;.NET平台上的...
  • 3.18 需要根据条件把一个复杂的表达式赋给两个变量中的一个。可以用下面这样的代码吗?((condition)?a:b)=complicated_expression;  3.19 我有些代码包含这样的表达式。a?b=c:d有些编译器可以接受,有些却不能。...
  •  3.18 需要根据条件把一个复杂的表达式赋给两个变量中的一个。可以用下面这样的代码吗?((condition)?a:b)=complicated_expression; 3.19 我有些代码包含这样的表达式。a?b=c:d有些编译器可以接受,有些却不能。...

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

把一列某些内容提取出来