ag-grid 导出 excel api getDataAsExcel

Posted

技术标签:

【中文标题】ag-grid 导出 excel api getDataAsExcel【英文标题】:ag-grid export excel api getDataAsExcel 【发布时间】:2018-12-21 10:14:24 【问题描述】:

我在 Angular 6 版本中使用 ag-grid。

我为用户提供了导出按钮,用于将 ag-grid 数据导出到 excel 中。因此,在导出的点击事件中,我有以下代码。

onExport() 
  var params = 
            fileName: 'Users',
            allColumns: true
        ;
    var content = this.gridOptions.api.getDataAsExcel(params);
    var workbook = XLSX.read(content, type: 'binary');
    var xlsxContent = XLSX.write(workbook, bookType: 'xlsx', type: 'base64');
    this.myService.download(params, xlsxContent);

这给了我以下错误。

UserrolesComponent.html:4 ERROR Error: Unrecognized tag: ![CDATA[URId]]|Workbook,false|Worksheet,false|Table,false
at viewWrappedDebugError (core.js:8439)
at callWithDebugContext (core.js:12214)
at Object.debugHandleEvent [as handleEvent] (core.js:11907)
at dispatchEvent (core.js:8561)
at core.js:9005
at HTMLButtonElement.<anonymous> (platform-browser.js:1215)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:4053)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)

有什么问题?

【问题讨论】:

我刚刚发现...我不需要额外的行...只需要调用 this.gridOptions.api.getDataAsExcel(params); .. 解决了我的问题 【参考方案1】:

我在升级到版本 17 时也遇到了这个问题。我能够通过将参数中的 suppressTextAsCDATA 设置为 true 来解决它,同时仍然允许导出到 xlsx。

例子:

var params = 
    suppressTextAsCDATA: true
    // ...
;

var content = this.gridOptions.api.getDataAsExcel(params);
var workbook = XLSX.read(content, type: 'binary');
var xlsxContent = XLSX.write(workbook, bookType: 'xlsx', type: 'base64');
this.myService.download(params, xlsxContent);

【讨论】:

【参考方案2】:

我删除了下面的行......

var content = this.gridOptions.api.getDataAsExcel(params);
var workbook = XLSX.read(content, type: 'binary');
var xlsxContent = XLSX.write(workbook, bookType: 'xlsx', type: 'base64');
this.myService.download(params, xlsxContent);

只保留...

this.gridOptions.api.exportDataAsExcel(params);

【讨论】:

以上是关于ag-grid 导出 excel api getDataAsExcel的主要内容,如果未能解决你的问题,请参考以下文章

Ag-grid 导出(Excel 样式):一个表的导出覆盖另一个表导出的样式/格式

在 ag-grid 上使用正确的单元格格式导出到 excel

Ag-grid - 导出的 excel 不会在 IE 中将字符串解析为日期格式

上下文菜单导出中的 ag-grid 企业自定义页脚 excel 和 CSV

如何使用 ag-grid 导出到具有 Angular 6 的大数据(50,000 行)的 excel 功能(内存不足错误)?

在 ag-grid Excel 导出中,如何使空日期时间类型为空单元格而不是 1900.01.00