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 =
+ `
+
+
+ 0123
4201160
52009011
6201531
`;
+
+ 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);