jquery.html()仅从handsontable返回一些行

jquery.html()仅从handsontable返回一些行,jquery,html,excel,handsontable,Jquery,Html,Excel,Handsontable,我有一个掌上电脑,有将近100行数据和9列数据。我添加了一个按钮,可以直接将handsontable中的数据导出到Excel。按钮功能可以工作,单击它将下载一个可以打开的Excel文件。此文件具有所有正确的格式,但在handsontable中只包含30-40行数据。单击“导出”按钮之前在表中向下滚动将导致结果中多出几行,但它不会返回所有数据 相关的jquery代码可以在这里看到: var tableContainer = document.getElementById('table'); tab

我有一个掌上电脑,有将近100行数据和9列数据。我添加了一个按钮,可以直接将handsontable中的数据导出到Excel。按钮功能可以工作,单击它将下载一个可以打开的Excel文件。此文件具有所有正确的格式,但在handsontable中只包含30-40行数据。单击“导出”按钮之前在表中向下滚动将导致结果中多出几行,但它不会返回所有数据

相关的jquery代码可以在这里看到:

var tableContainer = document.getElementById('table');
tableHandson = new Handsontable(tableContainer, {
    minSpareRows: 0,
    columnSorting: true,
    stretchH: 'all',
    readOnly: true
});
//ajax call to get data and then load it is here.
$(window).load(function() {
$("#btnExport").click(function(e) {
    window.open('data:application/vnd.ms-excel,' + encodeURIComponent($('#table').html()));
    e.preventDefault();
});
});

.text()也只返回与.html在此返回的数据量相同的有限数据量

看起来您正试图通过URL发送内容

通常,URL可以提供的字符数有一个最大长度,这通常取决于浏览器

您可以在此处找到约束的更详细概述:


您是否可以将数据发布到页面,并使用一些服务器端代码句柄输出具有正确内容类型的数据?

您看到的是HOT用于加速表性能的虚拟呈现。您可以在以下其他答案中了解更多信息:


看看你所做的是试图从DOM中抓取数据,这是你不应该做的。这将导致仅返回视口。相反,您应该使用
hot.getData()
方法解析自己的数据

谢谢你的链接。这是有道理的。但是,我用tableHandson.getData()替换上述代码的.html()部分的任何尝试都没有成功。它不能单独工作,也不能在encodeURIComponent()函数中工作。有什么建议吗?当然没有。您不能这样打开它,因为您得到的是您的数据对象(您应该顺便传入)。你到底想干什么?如果您希望将数据下载为“csv”文件,则需要采取其他步骤来正确格式化数据,所有这些步骤都高度依赖于该对象的外观。我正在尝试获取handsontable的内容,并将其显示在Excel中。这可能意味着将内容保存为csv或任何其他方法。使用.html()下载一个文件,该文件在Excel中打开,其中包含数据和表格格式。不过格式是不必要的。是的,所以我建议您将
hot.getData()
的输出记录到控制台中,并查看其他so答案,了解“如何将json数据导出到CSV”。