diff --git a/projects/igniteui-angular/src/lib/services/excel/excel-exporter-grid.spec.ts b/projects/igniteui-angular/src/lib/services/excel/excel-exporter-grid.spec.ts index a2c1b7b47da..7135c21189d 100644 --- a/projects/igniteui-angular/src/lib/services/excel/excel-exporter-grid.spec.ts +++ b/projects/igniteui-angular/src/lib/services/excel/excel-exporter-grid.spec.ts @@ -913,6 +913,21 @@ describe('Excel Exporter', () => { await exportAndVerify(hGrid, options, actualData.exportHierarchicalDataWithSkippedColumns); }); + + it('should export hierarchical grid with all child rows canceled.', async () => { + exporter.rowExporting.subscribe((args: IRowExportingEventArgs) => { + if (args.owner?.key === "Albums" || + args.owner?.key === "Songs" || + args.owner?.key === "Tours" || + args.owner?.key === "TourData") { + args.cancel = true; + } + }); + + fix.detectChanges(); + + await exportAndVerify(hGrid, options, actualData.exportHierarchicalDataWithSkippedRows); + }); }); describe('', () => { diff --git a/projects/igniteui-angular/src/lib/services/excel/test-data.service.spec.ts b/projects/igniteui-angular/src/lib/services/excel/test-data.service.spec.ts index f4334165940..8ea7f5c5328 100644 --- a/projects/igniteui-angular/src/lib/services/excel/test-data.service.spec.ts +++ b/projects/igniteui-angular/src/lib/services/excel/test-data.service.spec.ts @@ -1552,6 +1552,19 @@ export class FileContentData { return this.createData(); } + public get exportHierarchicalDataWithSkippedRows() { + this._sharedStringsData = + `count="7" uniqueCount="7">ArtistDebutGrammy NominationsGrammy AwardsNaomí YepesBabila EbwéléChloe`; + + this._worksheetData = + ` + + + 01234201160520090116201531`; + + return this.createData(); + } + public get exportMultiColumnHeadersWithSkippedColumnData() { this._sharedStringsData = `count="224" uniqueCount="200">CustomerIDGeneral InformationAddress InformationCompanyNamePersonal DetailsLocationContact InformationContactNameAddressCityPostalCodeCountryPhoneFaxAlfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany030-0074321030-0076545Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico(5) 555-4729(5) 555-3745Antonio Moreno TaqueríaAntonio MorenoMataderos 231205023(5) 555-3932Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK(171) 555-7788(171) 555-6750Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden0921-12 34 650921-12 34 67Blauer See DelikatessenHanna MoosForsterstr. 57Mannheim683060621-084600621-08924Blondesddsl père et filsFrédérique Citeaux24, place KléberStrasbourg67000France88.60.15.3188.60.15.32Bólido Comidas preparadasMartín SommerC/ Araquil, 67Madrid28023Spain(91) 555 22 82(91) 555 91 99Bon app'Laurence Lebihan12, rue des BouchersMarseille1300891.24.45.4091.24.45.41Bottom-Dollar MarketsElizabeth Lincoln23 Tsawassen Blvd.TsawassenT2F 8M4Canada(604) 555-4729(604) 555-3745B's BeveragesVictoria AshworthFauntleroy CircusEC2 5NT(171) 555-1212Cactus Comidas para llevarPatricio SimpsonCerrito 333Buenos Aires1010Argentina(1) 135-5555(1) 135-4892Centro comercial MoctezumaFrancisco ChangSierras de Granada 999305022(5) 555-3392(5) 555-7293Chop-suey ChineseYang WangHauptstr. 29Bern3012Switzerland0452-076545Comércio MineiroPedro AfonsoAv. dos Lusíadas, 23Sao Paulo05432-043Brazil(11) 555-7647Consolidated HoldingsElizabeth BrownBerkeley Gardens 12 BreweryWX1 6LT(171) 555-2282(171) 555-9199Drachenblut DelikatessenSven OttliebWalserweg 21Aachen520660241-0391230241-059428Du monde entierJanine Labrune67, rue des Cinquante OtagesNantes4400040.67.88.8840.67.89.89Eastern ConnectionAnn Devon35 King GeorgeWX3 6FW(171) 555-0297(171) 555-3373Ernst HandelRoland MendelKirchgasse 6Graz8010Austria7675-34257675-3426Familia ArquibaldoAria CruzRua Orós, 9205442-030(11) 555-9857FISSA Fabrica Inter. Salchichas S.A.Diego RoelC/ Moralzarzal, 8628034(91) 555 94 44(91) 555 55 93Folies gourmandesMartine Rancé184, chaussée de TournaiLille5900020.16.10.1620.16.10.17Folk och fä HBMaria LarssonÅkergatan 24BräckeS-844 670695-34 67 21FrankenversandPeter FrankenBerliner Platz 43München80805089-0877310089-0877451France restaurationCarine Schmitt54, rue Royale40.32.21.2140.32.21.20Franchi S.p.A.Paolo AccortiVia Monte Bianco 34Torino10100Italy011-4988260011-4988261`; diff --git a/projects/igniteui-angular/src/lib/services/exporter-common/base-export-service.ts b/projects/igniteui-angular/src/lib/services/exporter-common/base-export-service.ts index a1be097665f..ef505ec7ca7 100644 --- a/projects/igniteui-angular/src/lib/services/exporter-common/base-export-service.ts +++ b/projects/igniteui-angular/src/lib/services/exporter-common/base-export-service.ts @@ -221,6 +221,7 @@ export abstract class IgxBaseExporter { private pivotGridColumns: IColumnInfo[] = [] private pivotGridRowDimensionsMap: Map; private pivotGridKeyValueMap = new Map(); + private ownerGrid: any; /* alternateName: exportGrid */ /** @@ -238,6 +239,7 @@ export abstract class IgxBaseExporter { this.options = options; this.locale = grid.locale; + this.ownerGrid = grid; let columns = grid.columns; if (this.options.ignoreMultiColumnHeaders) { @@ -490,7 +492,8 @@ export abstract class IgxBaseExporter { const rowArgs = { rowData: record.data, rowIndex: index, - cancel: false + cancel: false, + owner: record.owner ?? this.ownerGrid }; this.rowExporting.emit(rowArgs);