1

我正在使用 Sencha Grid Exporter 插件,虽然它在导出到 Excel 时工作得很好,但我无法将它从我的应用程序导出到 CSV 或任何其他类型。

它工作正常,如 KitchenSink 示例中所列。

KitchenSink 出口商示例

http://docs.sencha.com/extjs/6.2.1/classic/Ext.grid.plugin.Exporter.html

Ext.getCmp('grid').saveDocumentAs({    
         type: 'csv',  // What other possible values can go here
         title: globals.reportName,
         fileName: 'myExport.csv'
});

带有如下错误:

Uncaught Error: [Ext.createByAlias] Unrecognized alias: exporter.CSV
at Ext.Inventory.instantiateByAlias (app.js?_dc=1481916938387:13520)
at Ext.Factory.create (app.js?_dc=1481916938387:23199)
at constructor.getExporter (app.js?_dc=1481916938387:204593)
at constructor.saveDocumentAs (app.js?_dc=1481916938387:204520)
at constructor.saveDocumentAs (app.js?_dc=1481916938387:5355)
at constructor.onMenuitemClick (app.js?_dc=1481916938387:255332)
at constructor.fire (app.js?_dc=1481916938387:19281)
at constructor.doFireEvent (app.js?_dc=1481916938387:20248)
at constructor.doFireEvent (app.js?_dc=1481916938387:65488)
at constructor.prototype.doFireEvent (app.js?_dc=1481916938387:56438)
4

1 回答 1

0

您缺少一个requires.

如果你告诉 ExtJS 使用type:'csv',它会尝试实例化exporter.csv。如果你告诉 ExtJS 使用type:'excel',它会尝试实例化exporter.excel。要从文件系统中获取该名称,您必须在某处包含完全限定名称,例如在您的requires部分中:

requires:[
    'Ext.exporter.text.CSV'
]

文档中的标题有两部分:首先是完整的限定类名称,即“Ext.exporter.text.CSV”,然后是短名称(“exporter.csv”)。如果您没有在任何地方提供全名,则无法加载文件,除非框架本身已经要求导出器的全名。根据错误消息,它没有。

背景信息,在您问“为什么不这样做?”之前:由于该插件可以与数十个导出器中的任何一个一起使用,并且您不想仅仅为了创建一种导出类型而加载所有内容,因此您必须导入手动导出器。

于 2016-12-17T06:52:03.360 回答