我正在使用handsontable插件生成Excel格式的数据。这是完成。我需要导出该数据为excel和下载。handsontable中是否有可用功能?如果没有,我怎么才能做到呢?这里,Handsontable数据在表格格式上是不同的
sq1bmfud1#
现在还没有一个特性,下个月的Pro版本会有,同时,this stack answer有一个解决方案可以实现,你需要解析handsontable中的数据对象,然后用普通的JS方式将字符串导出到csv。如果你不想点击链接,这里是fiddle,以及相关代码:
function parseRow(infoArray, index, csvContent) { var sizeData = _.size(hot1.getData()); if (index < sizeData - 1) { dataString = ""; _.each(infoArray, function(col, i) { dataString += _.contains(col, ",") ? "\"" + col + "\"" : col; dataString += i < _.size(infoArray) - 1 ? "," : ""; }) csvContent += index < sizeData - 2 ? dataString + "\n" : dataString; } return csvContent; } /** * Export to CSV button */ var exportCsv = $("#export-csv")[0]; if (exportCsv) { Handsontable.Dom.addEvent(exportCsv, "mouseup", function(e) { exportCsv.blur(); // jquery ui hackfix var csvContent = "data:text/csv;charset=utf-8,"; csvContent = parseRow(colHeaders, 0, csvContent); // comment this out to remove column headers _.each(hot1.getData(), function(infoArray, index) { csvContent = parseRow(infoArray, index, csvContent); }); var encodedUri = encodeURI(csvContent); var link = document.createElement("a"); link.setAttribute("href", encodedUri); link.setAttribute("download", $("h1").text() + ".csv"); link.click(); }) }
1条答案
按热度按时间sq1bmfud1#
现在还没有一个特性,下个月的Pro版本会有,同时,this stack answer有一个解决方案可以实现,你需要解析handsontable中的数据对象,然后用普通的JS方式将字符串导出到csv。
如果你不想点击链接,这里是fiddle,以及相关代码: