【问题标题】:JQuery export to excel is not working correctlyJQuery 导出到 excel 无法正常工作
【发布时间】:2015-07-27 20:03:39
【问题描述】:

我正在开发一个使用 JQuery 插件将 HTML 表导出到 Excel 的页面。 (https://github.com/rainabba/jquery-table2excel)。

由于某种原因,单击按钮时绝对没有任何反应。我已经确定了我的表,并调用了我的函数,所以我不知道为什么这段代码不起作用。

查看~(精简)

<div class="row">
  <div class="col-md-2">
    <a onclick="return ResultsToTable()" class="btn btn-default">Export</a>
  </div>
  <div class=col-md-10></div>
</div>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"><script>

<script src="~/js/jquery.table2excel.js"></script>

<script type="text/javascript">
  function ResultsToTable(){
            $("#resultsTable").table2excel({
                exclude: ".noExl",
                name: "Results"
            });
        };
 </script>

 <table id="resultsTable">
    //table stuff
  </table>

【问题讨论】:

  • 请打开浏览器的开发者工具,进入控制台标签页。然后点击按钮,如果您遇到任何错误,请告诉我们。
  • 可能只是一个错字,但它写的是&lt;a onlick而不是onclick
  • 感谢错字更正,已编辑。这次当我运行函数时,我得到了这个错误:$(...).table2excel is not a function。所以我猜它没有识别这个功能。想知道为什么?
  • 我引用了

标签: javascript c# html asp.net-mvc excel


【解决方案1】:

更正一下: &lt;script src="~/js/jquery.table2excel.js"&gt;&lt;/script>

您似乎没有正确加载库。 我想应该是:

<script src="/js/jquery.table2excel.js"></script>

但要根据文件夹的正确结构调整它

【讨论】:

    【解决方案2】:

    如果我没记错的话 jquery.table2excel.js 不能正常工作 ATM。我尝试从 repo 运行演示,但它不适合我。

    我尝试了一下,找到了解决办法:

    https://github.com/rainabba/jquery-table2excel/pull/13

    检查此JSFiddle
    (注意使用的是固定版本,见HTML顶部的脚本)

    只是为了合规,JS代码:

    jQuery(document).ready(function() {
        $('#export-btn').on('click', function(e){
            e.preventDefault();
            ResultsToTable();
        });
    
        function ResultsToTable(){    
            $("#resultsTable").table2excel({
                exclude: ".noExl",
                name: "Results"
            });
        }
    });
    

    【讨论】:

    • 很好的答案,赞成,但我仍然在 javascript 控制台中收到此错误“$(...).table2excel is not a function”,真的很奇怪。
    • 此错误表示您的页面上未加载 table2excel 插件。你试过我提供的小提琴吗?只需将您的代码与其进行比较,并注意脚本是如何包含和使用的。
    • 我按照小提琴的描述做了。当然现在我有一个新的错误。它说“拒绝执行来自 'raw.githubusercontent.com/unconditional/jquery-table2excel/…' 的脚本,因为它的 MIME 类型 ('text/plain') 不可执行,并且启用了严格的 MIME 类型检查。”有什么想法吗?
    • 问题是 github 提供的原始文件的 Content-Type 与浏览器预期的脚本不同。我更新了小提琴中的 URL,现在应该可以正常工作了。
    • 您的小提琴代码完美运行。因此,我复制了所有新的
    【解决方案3】:

    您可以使用此代码 sn-p 导出 Excel 文件。

    查看此https://jsfiddle.net/santoshgawande/2fcsq7o6/1/

    一切正常。

    var Results = [
      ["Col1", "Col2", "Col3", "Col4"],
      ["Data", 50, 100, 500],
      ["Data", -100, 20, 100],
    ];
    
    exportToCsv = function() {
      var CsvString = "";
      Results.forEach(function(RowItem, RowIndex) {
        RowItem.forEach(function(ColItem, ColIndex) {
          CsvString += ColItem + ',';
        });
        CsvString += "\r\n";
      });
      CsvString = "data:application/vnd.ms-excel," + encodeURIComponent(CsvString);
     var x = document.createElement("A");
     x.setAttribute("href", CsvString );
     x.setAttribute("download","Data.xlsx");
     document.body.appendChild(x);
     x.click();
    }
    &lt;button onclick="exportToCsv()"&gt;export to CSV&lt;/button&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-13
      • 2011-07-24
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多