Angular AG网格导出到excel,用于在多行上导出主详细信息

Angular AG网格导出到excel,用于在多行上导出主详细信息,angular,ag-grid,ag-grid-angular,Angular,Ag Grid,Ag Grid Angular,在Angular 8应用程序中,我有一个ag网格主细节网格,其中一个主行在细节网格中只有一个子行。我使用的是“ag网格企业”:“^21.0.1”。除以下情况外,一切正常: 导出到excel在版本21中不导出“详细信息”网格,但在版本22中导出工作文件。我没有找到任何文档来支持这一点 导出到excel导出excel中“主”网格下的“详细信息”网格。是否有办法将所有“主”和“详细”标题放在excel的同一行中 任何主行的展开现有展开行应折叠。只有一个主明细行应该展开。这看起来像是一个基本特性,但我在

在Angular 8应用程序中,我有一个ag网格主细节网格,其中一个主行在细节网格中只有一个子行。我使用的是“ag网格企业”:“^21.0.1”。除以下情况外,一切正常:

  • 导出到excel在版本21中不导出“详细信息”网格,但在版本22中导出工作文件。我没有找到任何文档来支持这一点
  • 导出到excel导出excel中“主”网格下的“详细信息”网格。是否有办法将所有“主”和“详细”标题放在excel的同一行中
  • 任何主行的展开现有展开行应折叠。只有一个主明细行应该展开。这看起来像是一个基本特性,但我在任何示例或文档中都没有看到它

  • 导出主详细信息数据时,您需要在
    gridOptions
    中对此进行配置,并告诉它何时导出。例如:

    this.defaultExportParams = {
          getCustomContentBelowRow: function(params) {
            return [
              [
                cell(''),
                cell('Call Id', 'header'),
                cell('Direction', 'header'),
                cell('Number', 'header'),
                cell('Duration', 'header'),
                cell('Switch Code', 'header'),
              ],
            ].concat(
              params.node.data.callRecords.map(function(record) {
                return [
                  cell(''),
                  cell(record.callId, 'body'),
                  cell(record.direction, 'body'),
                  cell(record.number, 'body'),
                  cell(record.duration, 'body'),
                  cell(record.switchCode, 'body'),
                ];
              }),
              [[]]
            );
          },
          columnWidth: 120,
        }
    
    上面的代码将确保导出详细信息,但需要配置列。是这方面的文档

    至于第三个问题,您可以使用
    getDetailRowData
    回调来折叠所有其他细节,如下所示:

    getDetailRowData: function(params) {
            this.gridApi.forEachNode(node => {
              node.expanded = false;
            });
            params.successCallback(params.data.callRecords);
          }.bind(this),
    

    查看Plunker。

    导出主详细信息数据时,您需要在
    gridOptions
    中配置此选项,并告诉它何时导出。例如:

    this.defaultExportParams = {
          getCustomContentBelowRow: function(params) {
            return [
              [
                cell(''),
                cell('Call Id', 'header'),
                cell('Direction', 'header'),
                cell('Number', 'header'),
                cell('Duration', 'header'),
                cell('Switch Code', 'header'),
              ],
            ].concat(
              params.node.data.callRecords.map(function(record) {
                return [
                  cell(''),
                  cell(record.callId, 'body'),
                  cell(record.direction, 'body'),
                  cell(record.number, 'body'),
                  cell(record.duration, 'body'),
                  cell(record.switchCode, 'body'),
                ];
              }),
              [[]]
            );
          },
          columnWidth: 120,
        }
    
    上面的代码将确保导出详细信息,但需要配置列。是这方面的文档

    至于第三个问题,您可以使用
    getDetailRowData
    回调来折叠所有其他细节,如下所示:

    getDetailRowData: function(params) {
            this.gridApi.forEachNode(node => {
              node.expanded = false;
            });
            params.successCallback(params.data.callRecords);
          }.bind(this),
    

    看看Plunker。

    嘿,Viqas,谢谢你的帮助。getDetailRowData工作得很好,唯一的问题是图标不会随数据一起折叠。this.defaultExportParams:我使用它的方式与您提到的完全相同,但excel给了我两行,一行表示主数据,一行表示详细数据。。。我想在同一个rowHey Viqas上同时获得主控和详细信息,谢谢你的帮助。getDetailRowData工作得很好,唯一的问题是图标不会随数据一起折叠。this.defaultExportParams:我使用它的方式与您提到的完全相同,但excel给了我两行,一行表示主数据,一行表示详细数据。。。我希望在同一行上同时显示主视图和详细视图