无法使用制表符插件将数据导出到Excel工作表

时间:2018-07-16 15:50:23

标签: javascript excel tabulator

我正在使用Tabulator插件将数据加载到html中。为此,我在javascript中使用了以下代码:

 var j = $( "#example-table" ).hasClass( "tabulator" )
  console.log(res["data"]);

  if (j) {
    $("#example-table").tabulator("destroy");


  }
  $("#example-table").tabulator({
    layout:"fitColumns"});

  //set new columns
  $("#example-table").tabulator("setColumns", res["column"]);

  //set new data
  $("#example-table").tabulator("setData", res["data"]);


  $("#download-xlsx").click(function(){
    $("#example-table").tabulator("download", "xlsx", "data.xlsx");
  });

  $("#download-csv").click(function(){
    $("#example-table").tabulator("download", "csv", "data.csv");
});

//trigger download of data.json file
$("#download-json").click(function(){
    $("#example-table").tabulator("download", "json", "data.json");
});

我正在html中使用以下代码:

    <div>
    <button class ="table-button" id ="download-xlsx">Download XLSX</button>
    <button class ="table-button" id ="download-csv">Download CSV</button>
    <button class ="table-button" id ="download-pdf">Download PDF</button>
    <button class ="table-button" id ="download-json">Download JSON</button>
    </div>

     <div id="example-table" style="margin-bottom: 100px; margin-top: 30px;" ></div>
    </div>

每次在ajax调用上,此代码都可以正常工作。我正在使用res [“ data”]来获取数据,并将其放入制表符设置数据函数中,并且可以完美地加载我的数据。但是,当我第一次单击excel时,加载数据时我正在下载文件,但是当我点击并重新加载新数据时,它会下载三个文件或四个文件。我的问题是当我单击新数据时如何重置文件和下载队列。

1 个答案:

答案 0 :(得分:0)

Tabulator中没有下载队列,如果您单击按钮,它将下载表内容。

如果您进行多次下载,这表明您多次重新绑定了click事件,因此在单击按钮时多次调用该函数。