【问题标题】:how to pass html table values to excel sheet cells如何将html表格值传递给excel表格单元格
【发布时间】:2011-10-11 15:28:53
【问题描述】:
function toExcel(tableID)
{    
    var detailsTable = document.getElementById(tableID);
    var oExcel = new ActiveXObject("Scripting.FileSystemObject");
    var oBook = oExcel.Workbooks.Add;
    var oSheet = oBook.Worksheets(1);
    for (var y=0;y<detailsTable.rows.length;y++)
    {
        for (var x=0;x<detailsTable.rows(y).cells.length;x++)
        {
            oSheet.Cells(y+1,x+1) =detailsTable.rows(y).cells(x).innerText;
        }
    }
    oExcel.Visible = true;
    oExcel.UserControl = true;
} 

【问题讨论】:

  • 像你这样只包含一些源代码sn-p而没有上下文和描述的问题通常会被关闭。以下是如何提问的示例:tinyurl.com/so-hints

标签: javascript html


【解决方案1】:

正如我发布的here。但是,自己无法测试。所以让我知道,如果它有效:)

<html>
<head>
<script type="text/javascript">
    function CreateExcelSheet() {
        var x = myTable.rows;

        var xls = new ActiveXObject("Excel.Application");
            xls.visible = true;
            xls.Workbooks.Add;
        for (i = 0; i < x.length; i++) {
            var y = x[i].cells;
            for (j = 0; j < y.length; j++) {
                xls.Cells( i+1, j+1).Value = y[j].innerText;
            }
        }
    }
</script>
</head>
<body>

<form>
    <input type="button" onclick="CreateExcelSheet()" value="Create Excel Sheet">
</form>

<table id="myTable" border="1">
    <tr>
        <td>Name</td>
        <td>Age</td>
    </tr>
    <tr>
        <td>Shivani</td>
        <td>25</td>
    </tr>
    <tr>
        <td>Naren </td>
        <td>28</td>
    </tr>
    <tr>
        <td>Logs</td>
        <td>57</td>
    </tr>
    <tr>
        <td>Kas</td>
        <td>54</td>
    </tr>
    <tr>
        <td>Sent</td>
        <td>26</td>
    </tr>
    <tr>
        <td>Bruce</td>
        <td>7</td>
    </tr>
</table>

</body>
</html>

【讨论】:

    【解决方案2】:
    <script language="javascript">
    function runApp()
    {
            var Excel, Book;
            var x=myTable.rows;
            Excel = new ActiveXObject("Excel.Application");
            Excel.Visible = true;
            Book = Excel.Workbooks.Add();
            for (i = 0; i < x.length; i++)
            {
                var y = x[i].cells;
                for (j = 0; j < y.length; j++)
                {
                    Book.ActiveSheet.Cells( i+1, j+1).Value = y[j].innerText;
                }
            }
    }
    </script>
    

    还有 HTML 代码

    <table id="myTable">
        ....
    </table>
    <form>
       <input type="button" onclick="runApp()" value="Export">
    </form>
    

    这应该可以完成工作。

    【讨论】: