我有一个包含大量记录的网格。我根据需要使用过滤器来过滤数据。但我想将过滤后的数据导出到Excel工作表以供进一步使用。
我浏览了一些可用的文章,但它们看起来不同,与最新的4.2版本不兼容。
请以简单的方式帮助我实现这一目标。
非常感谢!
答案 0 :(得分:4)
对于extjs< 4 http://edspencer.net/2009/11/24/ext-ux-exporter-export-any-grid-to-excel-or-csv/
对于extjs> = 4 http://www.sencha.com/forum/showthread.php?136598-Export-store-to-Excel
答案 1 :(得分:3)
据我所知,如果没有跨浏览器方式的Serverside实现,这是不可能的。
从理论上讲,您可以通过从商店中读取当前记录并使用base64对其进行编码来创建OpenXML文档字符串。然后将其写入Data Uri
。第一个不允许其他图像的内联数据的是IE,所以这不适用于所有IE浏览器版本,因为仅限于大小和图像。这就是没有最新实施的原因。
答案 2 :(得分:3)
成功实施了Ext JS 4的this方法。为了给它一个抽象类的灵活性,请按照说明操作:
全部替换"这个"函数引用全局函数调用。
添加" grid"从条目1开始的所有函数的参数 (downloadExcelXml())。
替换剩下的"这个"调用网格引用(因为函数应该在网格中起作用)。
现在在网格构造函数中添加此按钮并调用 像这样的处理程序downloadExcelXml():
exportButton = {
xtype: 'button',
text: 'xls',
listeners: {
click: function (button, event, eOpts) {
downloadExcelXml(
false,
"TableHeader",
eOpts.data.grid);
},
data: {
grid: this
}
};