diff --git a/projects/igniteui-angular/src/lib/services/excel/excel-exporter.spec.ts b/projects/igniteui-angular/src/lib/services/excel/excel-exporter.spec.ts index 8d91b3d75ff..2e6a4c838fe 100644 --- a/projects/igniteui-angular/src/lib/services/excel/excel-exporter.spec.ts +++ b/projects/igniteui-angular/src/lib/services/excel/excel-exporter.spec.ts @@ -134,6 +134,21 @@ describe('Excel Exporter', () => { await wrapper.verifyDataFilesContent(actualData.contactsDataSkippedColumnContent); }); + it('should not fail when data contains null characters (#14944).', async () => { + options.columnWidth = 50; + const wrapper = await getExportedData([ + 'Terrance\u0000Orta', + 'Richard Mahoney\x00LongerName', + 'Donna\0Price', + 'Lisa Landers', + 'Dorothy H. Spencer' + ], options); + + wrapper.verifyStructure(); + await wrapper.verifyTemplateFilesContent(); + await wrapper.verifyDataFilesContent(actualData.noHeadersStringDataWithNullChars); + }); + const getExportedData = (data: any[], exportOptions: IgxExcelExporterOptions) => { const result = new Promise((resolve) => { exporter.exportEnded.pipe(first()).subscribe((value) => { 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 99dbd9a5552..ede6cc673ea 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 @@ -1935,4 +1935,22 @@ export class FileContentData { return this.createData(); } + + public get noHeadersStringDataWithNullChars() { + this._sharedStringsData = `count="6" uniqueCount="6">Column1TerranceOrta` + + `Richard MahoneyLongerNameDonnaPriceLisa Landers` + + `Dorothy H. Spencer`; + + this._tableData = `ref="A1:A6" totalsRowShown="0">` + + ``; + + this._worksheetData = `` + + `0` + + `123` + + `45`; + + return this.createData(); + } + } diff --git a/projects/igniteui-angular/src/lib/services/exporter-common/export-utilities.ts b/projects/igniteui-angular/src/lib/services/exporter-common/export-utilities.ts index 62a44d8d772..be70ff2227b 100644 --- a/projects/igniteui-angular/src/lib/services/exporter-common/export-utilities.ts +++ b/projects/igniteui-angular/src/lib/services/exporter-common/export-utilities.ts @@ -68,7 +68,9 @@ export class ExportUtilities { .replace(//g, '>') .replace(/"/g, '"') - .replace(/'/g, '''); + .replace(/'/g, ''') + // Bug #14944 - Remove the not supported null character (\u0000, \x00) + .replace(/\x00/g, ''); } } }