【问题标题】:How to download a html table in excel sheet on button click (without using php)如何在单击按钮时在 Excel 表中下载 html 表格(不使用 php)
【发布时间】:2017-07-04 22:17:58
【问题描述】:

我想在单击按钮时以 excel 格式下载此 html 表格。请不要使用php和所有。使用 javscript/css。请给出完整的代码并粘贴所需的js文件的链接。

<table id="tb1">
    <tr>
        <td>Product</td>
        <td>Price</td>
        <td>Available</td>
        <td>Count</td>
    </tr>
    <tr>
        <td>Bred</td>
        <td>1</td>
        <td>2</td>
         <td>3</td>
    </tr>
    <tr>
        <td>Butter</td>
        <td>4   </td>
        <td>5   </td>
        <td >6  </td>
    </tr>

【问题讨论】:

  • 我们是不是有点专横。
  • 这里有一个以stackoverflow.com/questions/5524143/… 开头的链接,对于您正确搜索但未找到的问题寻求支持总是更好。不要要求端到端的解决方案
  • 如果您可以控制服务器端脚本并使用 php,请查找 PHPExcel
  • 我认为您应该访问提供所需“免费下载”文件的博客或网站。我们不会仅仅因为您要求而在此处粘贴“完整代码”。 愿原力与你同在
  • 我只是想要一个适当的例子来说明如何将 html 表格下载为 excel 格式。我用谷歌搜索了它,但代码对我不起作用。

标签: javascript jquery html css excel


【解决方案1】:

实现它的方法有很多,你只需要探索和学习。以下是我的建议。请检查这些并更改代码以满足您的需要。

此方法适用于 IE7+、Firefox、Chrome 和 Safari。这是javascript:

function ToExcelReport(){
    var tab_text="<table border='2px'><tr bgcolor='#FFFFFF'>";
    var textRange; var j=0;
    tab = document.getElementById('tb1'); //id of table

    for(j = 0 ; j < tab.rows.length ; j++){     
        tab_text=tab_text+tab.rows[j].innerHTML+"</tr>";
    }

    tab_text=tab_text+"</table>";
    tab_text= tab_text.replace(/<A[^>]*>|<\/A>/g, "");//remove if u want links in your table
    tab_text= tab_text.replace(/<img[^>]*>/gi,""); //remove if u want images in your table
    tab_text= tab_text.replace(/<input[^>]*>|<\/input>/gi, ""); //remove input params

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE "); 

    if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)){
        //if Internet Explorer
        txtArea1.document.open("txt/html","replace");
        txtArea1.document.write(tab_text);
        txtArea1.document.close();
        txtArea1.focus(); 
        sa=txtArea1.document.execCommand("SaveAs",true,"Sample.xls");
    } else{
        //other browsers
        sa = window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text));  
    }

    return (sa);
}

现在创建一个空白 iframe:

<iframe id="sample" style="display:none"></iframe>

然后创建一个触发导出的按钮。 (这取决于你)

<button id="btnExport" onclick="ToExcelReport();"> EXPORT </button>

这是另一种方法。以jquery 的方式进行。 (Jquery DataTables Table Tools plugin) 但缺点是如果碰巧没有闪光灯,它将无法正常工作。

$(document).ready( function () {
    $('#tb1').dataTable( {
        "sDom": 'T<"clear">lfrtip',
        "oTableTools": {
            "sSwfPath": "/swf/copy_cvs_xls_pdf.swf"
        }
    } );
} );

最后,我知道的最好的方法是使用服务器端语言(因为有时客户端语言在遇到这种情况时会很痛苦)。如果你有时间思考和改变你对生活的看法......开玩笑!......使用PHPExcel :)

【讨论】:

    猜你喜欢
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 2021-12-01
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多