@slickgrid-universal/excel-export 9.10.0 → 9.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -49,13 +49,15 @@ export declare class ExcelExportService implements ExternalResource, BaseExcelEx
|
|
|
49
49
|
*/
|
|
50
50
|
init(grid: SlickGrid, containerService: ContainerService): void;
|
|
51
51
|
/**
|
|
52
|
-
*
|
|
53
|
-
* This is a WYSIWYG export to file output (What You See is What You Get)
|
|
52
|
+
* Export the current grid data to Excel (WYSIWYG).
|
|
54
53
|
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
54
|
+
* Notes:
|
|
55
|
+
* - Column order must match the grid.
|
|
56
|
+
* - For large datasets, processing yields periodically to keep the UI responsive.
|
|
57
57
|
*
|
|
58
|
-
*
|
|
58
|
+
* Events:
|
|
59
|
+
* - 'onBeforeExportToExcel' before export starts
|
|
60
|
+
* - 'onAfterExportToExcel' after export completes or fails
|
|
59
61
|
*/
|
|
60
62
|
exportToExcel(options?: ExcelExportOption): Promise<boolean>;
|
|
61
63
|
/**
|
|
@@ -67,7 +69,10 @@ export declare class ExcelExportService implements ExternalResource, BaseExcelEx
|
|
|
67
69
|
* @return {string} The column name.
|
|
68
70
|
*/
|
|
69
71
|
getExcelColumnNameByIndex(colIndex: number): string;
|
|
70
|
-
|
|
72
|
+
/**
|
|
73
|
+
* Async version of getDataOutput with yielding for UI responsiveness during large dataset processing
|
|
74
|
+
*/
|
|
75
|
+
protected getDataOutputAsync(): Promise<Array<string[] | ExcelColumnMetadata[]>>;
|
|
71
76
|
/** Get each column style including a style for the width of each column */
|
|
72
77
|
protected getColumnStyles(columns: Column[]): any[];
|
|
73
78
|
/**
|
|
@@ -92,8 +97,14 @@ export declare class ExcelExportService implements ExternalResource, BaseExcelEx
|
|
|
92
97
|
protected getColumnHeaders(columns: Column[]): Array<KeyTitlePair> | null;
|
|
93
98
|
/**
|
|
94
99
|
* Get all the grid row data and return that as an output string
|
|
100
|
+
* Async version of pushAllGridRowDataToArray with yielding for UI responsiveness during large dataset processing.
|
|
101
|
+
* Processes rows directly from DataView with periodic yielding for responsiveness.
|
|
95
102
|
*/
|
|
96
|
-
protected
|
|
103
|
+
protected pushAllGridRowDataToArrayAsync(originalDaraArray: Array<Array<string | ExcelColumnMetadata | number>>, columns: Column[]): Promise<Array<Array<string | ExcelColumnMetadata | number>>>;
|
|
104
|
+
/** OPTIMIZATION: Pre-calculate column metadata to avoid repeated calculations */
|
|
105
|
+
protected preCalculateColumnMetadata(columns: Column[]): Map<string, any>;
|
|
106
|
+
/** OPTIMIZATION: Efficient yielding - use the fastest available method */
|
|
107
|
+
protected efficientYield(): Promise<void>;
|
|
97
108
|
/**
|
|
98
109
|
* Get the data of a regular row (a row without grouping)
|
|
99
110
|
* @param {Array<Object>} columns - column definitions
|
|
@@ -112,7 +123,7 @@ export declare class ExcelExportService implements ExternalResource, BaseExcelEx
|
|
|
112
123
|
* @param itemObj
|
|
113
124
|
*/
|
|
114
125
|
protected readGroupedTotalRows(columns: Column[], itemObj: any, dataRowIdx: number): Array<ExcelColumnMetadata | string | number>;
|
|
115
|
-
/**
|
|
116
|
-
protected
|
|
126
|
+
/** Async version of legacy Excel export fallback method */
|
|
127
|
+
protected legacyExcelExportAsync(filename: string, mimeType: string): Promise<boolean>;
|
|
117
128
|
}
|
|
118
129
|
//# sourceMappingURL=excelExport.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"excelExport.service.d.ts","sourceRoot":"","sources":["../src/excelExport.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,IAAI,sBAAsB,EAC5C,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EAEjB,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,UAAU,EACV,YAAY,EACZ,MAAM,EACN,aAAa,EACb,aAAa,EACb,SAAS,EACT,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAIL,QAAQ,EAIT,MAAM,6BAA6B,CAAC;AAUrC,OAAO,EAGL,QAAQ,EACR,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAiF,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AASrI,qBAAa,kBAAmB,YAAW,gBAAgB,EAAE,sBAAsB;IACjF,SAAS,CAAC,WAAW,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAiB;IACjE,SAAS,CAAC,KAAK,EAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,QAAQ,EAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACtD,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,YAAY,CAAC,CAAM;IACnD,SAAS,CAAC,wBAAwB,UAAS;IAC3C,SAAS,CAAC,gBAAgB,UAAS;IACnC,SAAS,CAAC,mBAAmB,EAAG,iBAAiB,CAAC;IAClD,SAAS,CAAC,MAAM,EAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,WAAW,EAAG,UAAU,CAAC;IACnC,SAAS,CAAC,kBAAkB,EAAE,GAAG,CAAC;IAClC,SAAS,CAAC,cAAc,EAAE,aAAa,GAAG,IAAI,CAAQ;IACtD,SAAS,CAAC,kBAAkB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC5D,SAAS,CAAC,SAAS,EAAG,QAAQ,CAAC;IAG/B,SAAS,CAAC,wBAAwB,EAAE;QAClC,CAAC,OAAO,EAAE,MAAM,GAAG;YAAE,aAAa,CAAC,EAAE,MAAM,CAAC;YAAC,kBAAkB,EAAE,oBAAoB,CAAA;SAAE,CAAC;KACzF,CAAM;IACP,SAAS,CAAC,uBAAuB,EAAE;QACjC,CAAC,OAAO,EAAE,MAAM,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,cAAc,CAAC;YAAC,mBAAmB,CAAC,EAAE,0BAA0B,CAAA;SAAE,CAAC;KAC1H,CAAM;IAEP,8GAA8G;IAC9G,QAAQ,CAAC,SAAS,wBAAwB;IAE1C,SAAS,KAAK,kBAAkB,IAAI,MAAM,CAEzC;IAED,0CAA0C;IAC1C,IAAI,SAAS,IAAI,aAAa,CAE7B;IAED,iEAAiE;IACjE,SAAS,KAAK,YAAY,IAAI,UAAU,CAEvC;IAED,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,iBAAiB,IAAI,GAAG,CAE3B;IAED,IAAI,sBAAsB,IAAI,GAAG,CAEhC;IAED,IAAI,uBAAuB,IAAI,GAAG,CAEjC;IAED,OAAO,IAAI,IAAI;IAIf;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,IAAI;IAe/D
|
|
1
|
+
{"version":3,"file":"excelExport.service.d.ts","sourceRoot":"","sources":["../src/excelExport.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,93 +65,96 @@ export class ExcelExportService {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
/**
|
|
68
|
-
*
|
|
69
|
-
* This is a WYSIWYG export to file output (What You See is What You Get)
|
|
68
|
+
* Export the current grid data to Excel (WYSIWYG).
|
|
70
69
|
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
70
|
+
* Notes:
|
|
71
|
+
* - Column order must match the grid.
|
|
72
|
+
* - For large datasets, processing yields periodically to keep the UI responsive.
|
|
73
73
|
*
|
|
74
|
-
*
|
|
74
|
+
* Events:
|
|
75
|
+
* - 'onBeforeExportToExcel' before export starts
|
|
76
|
+
* - 'onAfterExportToExcel' after export completes or fails
|
|
75
77
|
*/
|
|
76
|
-
exportToExcel(options) {
|
|
78
|
+
async exportToExcel(options) {
|
|
77
79
|
if (!this._grid || !this._dataView || !this._pubSubService) {
|
|
78
80
|
throw new Error('[Slickgrid-Universal] it seems that the SlickGrid & DataView objects and/or PubSubService are not initialized did you forget to enable the grid option flag "enableExcelExport"?');
|
|
79
81
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const chunks = [];
|
|
131
|
-
for await (const chunk of stream) {
|
|
132
|
-
chunks.push(chunk);
|
|
133
|
-
}
|
|
134
|
-
const blob = new Blob(chunks, { type: mimeType });
|
|
135
|
-
const url = URL.createObjectURL(blob);
|
|
136
|
-
// download with anchor tag
|
|
137
|
-
const a = createDomElement('a', { href: url, download: filename }, document.body);
|
|
138
|
-
a.click();
|
|
139
|
-
document.body.removeChild(a);
|
|
140
|
-
URL.revokeObjectURL(url);
|
|
141
|
-
this._pubSubService?.publish('onAfterExportToExcel', { filename, mimeType });
|
|
142
|
-
resolve(true);
|
|
143
|
-
}
|
|
144
|
-
catch (err) {
|
|
145
|
-
// fallback to legacy export if streaming is not supported
|
|
146
|
-
this.legacyExcelExport(filename, mimeType, resolve);
|
|
82
|
+
this._pubSubService?.publish('onBeforeExportToExcel', true);
|
|
83
|
+
this._excelExportOptions = extend(true, {}, { ...DEFAULT_EXPORT_OPTIONS, ...this._gridOptions.excelExportOptions, ...options });
|
|
84
|
+
this._fileFormat = this._excelExportOptions.format || FileType.xlsx;
|
|
85
|
+
const useStreamingExport = !!this._excelExportOptions.useStreamingExport;
|
|
86
|
+
// reset references of detected Excel formats
|
|
87
|
+
this._regularCellExcelFormats = {};
|
|
88
|
+
this._groupTotalExcelFormats = {};
|
|
89
|
+
// prepare the Excel Workbook & Sheet
|
|
90
|
+
const worksheetOptions = { name: this._excelExportOptions.sheetName || 'Sheet1' };
|
|
91
|
+
this._workbook = new Workbook();
|
|
92
|
+
this._sheet = this._workbook.createWorksheet(worksheetOptions);
|
|
93
|
+
// add any Excel Format/Stylesheet to current Workbook
|
|
94
|
+
this._stylesheet = this._workbook.getStyleSheet();
|
|
95
|
+
// create some common default Excel formatters that will be used
|
|
96
|
+
const boldFormat = this._stylesheet.createFormat({ font: { bold: true } });
|
|
97
|
+
const stringFormat = this._stylesheet.createFormat({ format: '@' });
|
|
98
|
+
const numberFormat = this._stylesheet.createFormat({ format: '0' });
|
|
99
|
+
this._stylesheetFormats = { boldFormat, numberFormat, stringFormat };
|
|
100
|
+
this._sheet.setColumnFormats([boldFormat]);
|
|
101
|
+
try {
|
|
102
|
+
// get all data by reading all DataView rows with yielding for responsiveness
|
|
103
|
+
const dataOutput = await this.getDataOutputAsync();
|
|
104
|
+
if (this._gridOptions?.excelExportOptions?.customExcelHeader) {
|
|
105
|
+
this._gridOptions.excelExportOptions.customExcelHeader(this._workbook, this._sheet);
|
|
106
|
+
}
|
|
107
|
+
const columns = this._grid?.getColumns() || [];
|
|
108
|
+
this._sheet.setColumns(this.getColumnStyles(columns));
|
|
109
|
+
const currentSheetData = this._sheet.data;
|
|
110
|
+
let finalOutput = currentSheetData;
|
|
111
|
+
if (Array.isArray(currentSheetData) && Array.isArray(dataOutput)) {
|
|
112
|
+
finalOutput = this._sheet.data.concat(dataOutput);
|
|
113
|
+
}
|
|
114
|
+
this._sheet.setData(finalOutput);
|
|
115
|
+
this._workbook.addWorksheet(this._sheet);
|
|
116
|
+
// MIME type could be undefined, if that's the case we'll detect the type by its file extension
|
|
117
|
+
// user could also provide its own mime type, if however an empty string is provided we will consider to be without any MIME type)
|
|
118
|
+
let mimeType = this._excelExportOptions?.mimeType;
|
|
119
|
+
if (mimeType === undefined) {
|
|
120
|
+
mimeType =
|
|
121
|
+
this._fileFormat === FileType.xls
|
|
122
|
+
? 'application/vnd.ms-excel'
|
|
123
|
+
: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
|
|
124
|
+
}
|
|
125
|
+
const filename = `${this._excelExportOptions.filename}.${this._fileFormat}`;
|
|
126
|
+
if (this._fileFormat === FileType.xlsx && useStreamingExport) {
|
|
127
|
+
try {
|
|
128
|
+
const stream = createExcelFileStream(this._workbook, { chunkSize: 1000 });
|
|
129
|
+
const chunks = [];
|
|
130
|
+
for await (const chunk of stream) {
|
|
131
|
+
chunks.push(chunk);
|
|
147
132
|
}
|
|
133
|
+
const blob = new Blob(chunks, { type: mimeType });
|
|
134
|
+
const url = URL.createObjectURL(blob);
|
|
135
|
+
// download with anchor tag
|
|
136
|
+
const a = createDomElement('a', { href: url, download: filename }, document.body);
|
|
137
|
+
a.click();
|
|
138
|
+
document.body.removeChild(a);
|
|
139
|
+
URL.revokeObjectURL(url);
|
|
140
|
+
this._pubSubService?.publish('onAfterExportToExcel', { filename, mimeType });
|
|
141
|
+
return true;
|
|
148
142
|
}
|
|
149
|
-
|
|
150
|
-
// fallback to legacy export
|
|
151
|
-
this.
|
|
143
|
+
catch (err) {
|
|
144
|
+
// fallback to legacy export if streaming is not supported
|
|
145
|
+
return await this.legacyExcelExportAsync(filename, mimeType);
|
|
152
146
|
}
|
|
153
|
-
}
|
|
154
|
-
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// fallback to legacy export for non-xlsx or if useStreamingExport is false
|
|
150
|
+
return await this.legacyExcelExportAsync(filename, mimeType);
|
|
151
|
+
}
|
|
152
|
+
} /** v8 ignore next */
|
|
153
|
+
catch (error) {
|
|
154
|
+
console.error('Excel export failed:', error);
|
|
155
|
+
this._pubSubService?.publish('onAfterExportToExcel', { error });
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
155
158
|
}
|
|
156
159
|
/**
|
|
157
160
|
* Takes a positive integer and returns the corresponding column name.
|
|
@@ -176,7 +179,10 @@ export class ExcelExportService {
|
|
|
176
179
|
// -----------------------
|
|
177
180
|
// protected functions
|
|
178
181
|
// -----------------------
|
|
179
|
-
|
|
182
|
+
/**
|
|
183
|
+
* Async version of getDataOutput with yielding for UI responsiveness during large dataset processing
|
|
184
|
+
*/
|
|
185
|
+
async getDataOutputAsync() {
|
|
180
186
|
const columns = this._grid?.getColumns() || [];
|
|
181
187
|
// data variable which will hold all the fields data of a row
|
|
182
188
|
const outputData = [];
|
|
@@ -196,8 +202,8 @@ export class ExcelExportService {
|
|
|
196
202
|
// get all Column Header Titles (it might include a "Group by" title at A1 cell)
|
|
197
203
|
// also style the headers, defaults to Bold but user could pass his own style
|
|
198
204
|
outputData.push(this.getColumnHeaderData(columns, { style: columnHeaderStyleId }));
|
|
199
|
-
// Populate the rest of the Grid Data
|
|
200
|
-
this.
|
|
205
|
+
// Populate the rest of the Grid Data by reading directly from DataView with yielding for responsiveness
|
|
206
|
+
await this.pushAllGridRowDataToArrayAsync(outputData, columns);
|
|
201
207
|
return outputData;
|
|
202
208
|
}
|
|
203
209
|
/** Get each column style including a style for the width of each column */
|
|
@@ -283,9 +289,7 @@ export class ExcelExportService {
|
|
|
283
289
|
this._hasGroupedItems = true;
|
|
284
290
|
return groupByColumnHeader;
|
|
285
291
|
}
|
|
286
|
-
|
|
287
|
-
this._hasGroupedItems = false;
|
|
288
|
-
}
|
|
292
|
+
this._hasGroupedItems = false;
|
|
289
293
|
return null;
|
|
290
294
|
}
|
|
291
295
|
/**
|
|
@@ -297,13 +301,9 @@ export class ExcelExportService {
|
|
|
297
301
|
if (Array.isArray(columns)) {
|
|
298
302
|
// Populate the Grouped Column Header, pull the columnGroup(Key) defined
|
|
299
303
|
columns.forEach((columnDef) => {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
}
|
|
304
|
-
else {
|
|
305
|
-
groupedHeaderTitle = columnDef.columnGroup || '';
|
|
306
|
-
}
|
|
304
|
+
const groupedHeaderTitle = columnDef.columnGroupKey && this._gridOptions.enableTranslate && this._translaterService?.translate
|
|
305
|
+
? this._translaterService.translate(columnDef.columnGroupKey)
|
|
306
|
+
: columnDef.columnGroup || '';
|
|
307
307
|
const skippedField = columnDef.excludeFromExport || false;
|
|
308
308
|
// if column width is 0px, then we consider that field as a hidden field and should not be part of the export
|
|
309
309
|
if ((columnDef.width === undefined || columnDef.width > 0) && !skippedField) {
|
|
@@ -346,18 +346,26 @@ export class ExcelExportService {
|
|
|
346
346
|
}
|
|
347
347
|
/**
|
|
348
348
|
* Get all the grid row data and return that as an output string
|
|
349
|
+
* Async version of pushAllGridRowDataToArray with yielding for UI responsiveness during large dataset processing.
|
|
350
|
+
* Processes rows directly from DataView with periodic yielding for responsiveness.
|
|
349
351
|
*/
|
|
350
|
-
|
|
351
|
-
const
|
|
352
|
-
|
|
352
|
+
async pushAllGridRowDataToArrayAsync(originalDaraArray, columns) {
|
|
353
|
+
const dataView = this._dataView;
|
|
354
|
+
const lineCount = dataView.getLength();
|
|
355
|
+
// Yield periodically based on dataset size
|
|
356
|
+
const YIELD_FREQUENCY = lineCount < 1000 ? 0 : lineCount < 10000 ? 1000 : 500;
|
|
357
|
+
// Update the hasGroupedItems flag from current grouping
|
|
358
|
+
const grouping = dataView.getGrouping();
|
|
359
|
+
this._hasGroupedItems = Array.isArray(grouping) && grouping.length > 0;
|
|
360
|
+
// Read rows directly from DataView
|
|
353
361
|
for (let rowNumber = 0; rowNumber < lineCount; rowNumber++) {
|
|
354
|
-
const itemObj =
|
|
362
|
+
const itemObj = dataView.getItem(rowNumber);
|
|
355
363
|
// make sure we have a filled object AND that the item doesn't include the "getItem" method
|
|
356
364
|
// this happen could happen with an opened Row Detail as it seems to include an empty Slick DataView (we'll just skip those lines)
|
|
357
365
|
if (itemObj && !itemObj.hasOwnProperty('getItem')) {
|
|
358
366
|
// Normal row (not grouped by anything) would have an ID which was predefined in the Grid Columns definition
|
|
359
367
|
if (itemObj[this._datasetIdPropName] !== null && itemObj[this._datasetIdPropName] !== undefined) {
|
|
360
|
-
//
|
|
368
|
+
// Read a regular row
|
|
361
369
|
originalDaraArray.push(this.readRegularRowData(columns, rowNumber, itemObj, rowNumber));
|
|
362
370
|
}
|
|
363
371
|
else if (this._hasGroupedItems && itemObj.__groupTotals === undefined) {
|
|
@@ -365,13 +373,53 @@ export class ExcelExportService {
|
|
|
365
373
|
originalDaraArray.push([this.readGroupedRowTitle(itemObj)]);
|
|
366
374
|
}
|
|
367
375
|
else if (itemObj.__groupTotals) {
|
|
368
|
-
// else if the row is a Group By and we have
|
|
376
|
+
// else if the row is a Group By and we have aggregators, then a property of '__groupTotals' would exist under that object
|
|
369
377
|
originalDaraArray.push(this.readGroupedTotalRows(columns, itemObj, rowNumber));
|
|
370
378
|
}
|
|
371
379
|
}
|
|
380
|
+
// Yield to event loop
|
|
381
|
+
if (YIELD_FREQUENCY > 0 && rowNumber > 0 && rowNumber % YIELD_FREQUENCY === 0) {
|
|
382
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
383
|
+
}
|
|
372
384
|
}
|
|
373
385
|
return originalDaraArray;
|
|
374
386
|
}
|
|
387
|
+
/** OPTIMIZATION: Pre-calculate column metadata to avoid repeated calculations */
|
|
388
|
+
preCalculateColumnMetadata(columns) {
|
|
389
|
+
const cache = new Map();
|
|
390
|
+
// OPTIMIZATION: Pre-calculate if we have complex spanning to avoid checking on every row
|
|
391
|
+
const hasComplexSpanning = this._gridOptions.enableCellRowSpan || columns.some((col) => col.colspan || col.rowspan);
|
|
392
|
+
for (const columnDef of columns) {
|
|
393
|
+
if (!columnDef.excludeFromExport) {
|
|
394
|
+
const fieldType = getColumnFieldType(columnDef);
|
|
395
|
+
const exportOptions = { ...this._excelExportOptions };
|
|
396
|
+
// Pre-calculate date formatting logic
|
|
397
|
+
if (columnDef.exportWithFormatter !== false && isColumnDateType(fieldType)) {
|
|
398
|
+
exportOptions.exportWithFormatter = true;
|
|
399
|
+
}
|
|
400
|
+
cache.set(String(columnDef.id), {
|
|
401
|
+
fieldType,
|
|
402
|
+
exportOptions,
|
|
403
|
+
hasFormatter: !!columnDef.formatter,
|
|
404
|
+
sanitizeData: columnDef.sanitizeDataExport || this._excelExportOptions.sanitizeDataExport,
|
|
405
|
+
field: columnDef.field,
|
|
406
|
+
hasComplexSpanning, // Cache this to avoid repeated checks
|
|
407
|
+
});
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
return cache;
|
|
411
|
+
}
|
|
412
|
+
/** OPTIMIZATION: Efficient yielding - use the fastest available method */
|
|
413
|
+
async efficientYield() {
|
|
414
|
+
// Use scheduler.postTask if available (Chrome 94+) - fastest
|
|
415
|
+
if (typeof globalThis.scheduler?.postTask === 'function') {
|
|
416
|
+
return new Promise((resolve) => {
|
|
417
|
+
globalThis.scheduler.postTask(resolve, { priority: 'user-blocking' });
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
// Use setTimeout(0) - most reliable and often fastest
|
|
421
|
+
return new Promise((resolve) => setTimeout(resolve, 0));
|
|
422
|
+
}
|
|
375
423
|
/**
|
|
376
424
|
* Get the data of a regular row (a row without grouping)
|
|
377
425
|
* @param {Array<Object>} columns - column definitions
|
|
@@ -591,12 +639,18 @@ export class ExcelExportService {
|
|
|
591
639
|
});
|
|
592
640
|
return outputStrings;
|
|
593
641
|
}
|
|
594
|
-
/**
|
|
595
|
-
|
|
596
|
-
|
|
642
|
+
/** Async version of legacy Excel export fallback method */
|
|
643
|
+
async legacyExcelExportAsync(filename, mimeType) {
|
|
644
|
+
try {
|
|
645
|
+
await downloadExcelFile(this._workbook, filename, { mimeType });
|
|
597
646
|
this._pubSubService?.publish(`onAfterExportToExcel`, { filename, mimeType });
|
|
598
|
-
|
|
599
|
-
}
|
|
647
|
+
return true;
|
|
648
|
+
}
|
|
649
|
+
catch (error) {
|
|
650
|
+
console.error('Legacy Excel export failed:', error);
|
|
651
|
+
this._pubSubService?.publish('onAfterExportToExcel', { error });
|
|
652
|
+
return false;
|
|
653
|
+
}
|
|
600
654
|
}
|
|
601
655
|
}
|
|
602
656
|
//# sourceMappingURL=excelExport.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"excelExport.service.js","sourceRoot":"","sources":["../src/excelExport.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"excelExport.service.js","sourceRoot":"","sources":["../src/excelExport.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slickgrid-universal/excel-export",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.12.0",
|
|
4
4
|
"description": "Excel Export (xls/xlsx) Service.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -30,19 +30,14 @@
|
|
|
30
30
|
"bugs": {
|
|
31
31
|
"url": "https://github.com/ghiscoding/slickgrid-universal/issues"
|
|
32
32
|
},
|
|
33
|
-
"browserslist": [
|
|
34
|
-
"last 2 versions",
|
|
35
|
-
"> 1%",
|
|
36
|
-
"not dead"
|
|
37
|
-
],
|
|
38
33
|
"dependencies": {
|
|
39
|
-
"@slickgrid-universal/common": "9.
|
|
40
|
-
"@slickgrid-universal/utils": "9.
|
|
34
|
+
"@slickgrid-universal/common": "9.12.0",
|
|
35
|
+
"@slickgrid-universal/utils": "9.12.0",
|
|
41
36
|
"excel-builder-vanilla": "^4.2.1"
|
|
42
37
|
},
|
|
43
38
|
"funding": {
|
|
44
39
|
"type": "ko_fi",
|
|
45
40
|
"url": "https://ko-fi.com/ghiscoding"
|
|
46
41
|
},
|
|
47
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "02bb1252e7069954d0ee0c5d187edc7c209d2245"
|
|
48
43
|
}
|
|
@@ -133,107 +133,110 @@ export class ExcelExportService implements ExternalResource, BaseExcelExportServ
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
/**
|
|
136
|
-
*
|
|
137
|
-
* This is a WYSIWYG export to file output (What You See is What You Get)
|
|
136
|
+
* Export the current grid data to Excel (WYSIWYG).
|
|
138
137
|
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
138
|
+
* Notes:
|
|
139
|
+
* - Column order must match the grid.
|
|
140
|
+
* - For large datasets, processing yields periodically to keep the UI responsive.
|
|
141
141
|
*
|
|
142
|
-
*
|
|
142
|
+
* Events:
|
|
143
|
+
* - 'onBeforeExportToExcel' before export starts
|
|
144
|
+
* - 'onAfterExportToExcel' after export completes or fails
|
|
143
145
|
*/
|
|
144
|
-
exportToExcel(options?: ExcelExportOption): Promise<boolean> {
|
|
146
|
+
async exportToExcel(options?: ExcelExportOption): Promise<boolean> {
|
|
145
147
|
if (!this._grid || !this._dataView || !this._pubSubService) {
|
|
146
148
|
throw new Error(
|
|
147
149
|
'[Slickgrid-Universal] it seems that the SlickGrid & DataView objects and/or PubSubService are not initialized did you forget to enable the grid option flag "enableExcelExport"?'
|
|
148
150
|
);
|
|
149
151
|
}
|
|
150
|
-
// wrap in a Promise so that we can add loading spinner
|
|
151
|
-
return new Promise((resolve) => {
|
|
152
|
-
this._pubSubService?.publish('onBeforeExportToExcel', true);
|
|
153
|
-
this._excelExportOptions = extend(true, {}, { ...DEFAULT_EXPORT_OPTIONS, ...this._gridOptions.excelExportOptions, ...options });
|
|
154
|
-
this._fileFormat = this._excelExportOptions.format || FileType.xlsx;
|
|
155
|
-
const useStreamingExport = !!this._excelExportOptions.useStreamingExport;
|
|
156
|
-
|
|
157
|
-
// reset references of detected Excel formats
|
|
158
|
-
this._regularCellExcelFormats = {};
|
|
159
|
-
this._groupTotalExcelFormats = {};
|
|
160
|
-
|
|
161
|
-
// prepare the Excel Workbook & Sheet
|
|
162
|
-
const worksheetOptions = { name: this._excelExportOptions.sheetName || 'Sheet1' };
|
|
163
|
-
this._workbook = new Workbook();
|
|
164
|
-
this._sheet = this._workbook.createWorksheet(worksheetOptions);
|
|
165
|
-
|
|
166
|
-
// add any Excel Format/Stylesheet to current Workbook
|
|
167
|
-
this._stylesheet = this._workbook.getStyleSheet();
|
|
168
|
-
|
|
169
|
-
// create some common default Excel formatters that will be used
|
|
170
|
-
const boldFormat = this._stylesheet.createFormat({ font: { bold: true } });
|
|
171
|
-
const stringFormat = this._stylesheet.createFormat({ format: '@' });
|
|
172
|
-
const numberFormat = this._stylesheet.createFormat({ format: '0' });
|
|
173
|
-
this._stylesheetFormats = { boldFormat, numberFormat, stringFormat };
|
|
174
|
-
this._sheet.setColumnFormats([boldFormat]);
|
|
175
|
-
|
|
176
|
-
// Add a short delay to ensure spinner/UI updates before heavy export work begins
|
|
177
|
-
setTimeout(async () => {
|
|
178
|
-
// get all data by reading all DataView rows
|
|
179
|
-
const dataOutput = this.getDataOutput();
|
|
180
|
-
|
|
181
|
-
if (this._gridOptions?.excelExportOptions?.customExcelHeader) {
|
|
182
|
-
this._gridOptions.excelExportOptions.customExcelHeader(this._workbook, this._sheet);
|
|
183
|
-
}
|
|
184
152
|
|
|
185
|
-
|
|
186
|
-
|
|
153
|
+
this._pubSubService?.publish('onBeforeExportToExcel', true);
|
|
154
|
+
this._excelExportOptions = extend(true, {}, { ...DEFAULT_EXPORT_OPTIONS, ...this._gridOptions.excelExportOptions, ...options });
|
|
155
|
+
this._fileFormat = this._excelExportOptions.format || FileType.xlsx;
|
|
156
|
+
const useStreamingExport = !!this._excelExportOptions.useStreamingExport;
|
|
187
157
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
finalOutput = this._sheet.data.concat(dataOutput);
|
|
192
|
-
}
|
|
158
|
+
// reset references of detected Excel formats
|
|
159
|
+
this._regularCellExcelFormats = {};
|
|
160
|
+
this._groupTotalExcelFormats = {};
|
|
193
161
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
162
|
+
// prepare the Excel Workbook & Sheet
|
|
163
|
+
const worksheetOptions = { name: this._excelExportOptions.sheetName || 'Sheet1' };
|
|
164
|
+
this._workbook = new Workbook();
|
|
165
|
+
this._sheet = this._workbook.createWorksheet(worksheetOptions);
|
|
166
|
+
|
|
167
|
+
// add any Excel Format/Stylesheet to current Workbook
|
|
168
|
+
this._stylesheet = this._workbook.getStyleSheet();
|
|
169
|
+
|
|
170
|
+
// create some common default Excel formatters that will be used
|
|
171
|
+
const boldFormat = this._stylesheet.createFormat({ font: { bold: true } });
|
|
172
|
+
const stringFormat = this._stylesheet.createFormat({ format: '@' });
|
|
173
|
+
const numberFormat = this._stylesheet.createFormat({ format: '0' });
|
|
174
|
+
this._stylesheetFormats = { boldFormat, numberFormat, stringFormat };
|
|
175
|
+
this._sheet.setColumnFormats([boldFormat]);
|
|
176
|
+
|
|
177
|
+
try {
|
|
178
|
+
// get all data by reading all DataView rows with yielding for responsiveness
|
|
179
|
+
const dataOutput = await this.getDataOutputAsync();
|
|
180
|
+
|
|
181
|
+
if (this._gridOptions?.excelExportOptions?.customExcelHeader) {
|
|
182
|
+
this._gridOptions.excelExportOptions.customExcelHeader(this._workbook, this._sheet);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
const columns = this._grid?.getColumns() || [];
|
|
186
|
+
this._sheet.setColumns(this.getColumnStyles(columns));
|
|
187
|
+
|
|
188
|
+
const currentSheetData = this._sheet.data;
|
|
189
|
+
let finalOutput = currentSheetData;
|
|
190
|
+
if (Array.isArray(currentSheetData) && Array.isArray(dataOutput)) {
|
|
191
|
+
finalOutput = this._sheet.data.concat(dataOutput);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
this._sheet.setData(finalOutput);
|
|
195
|
+
this._workbook.addWorksheet(this._sheet);
|
|
196
|
+
|
|
197
|
+
// MIME type could be undefined, if that's the case we'll detect the type by its file extension
|
|
198
|
+
// user could also provide its own mime type, if however an empty string is provided we will consider to be without any MIME type)
|
|
199
|
+
let mimeType = this._excelExportOptions?.mimeType;
|
|
200
|
+
if (mimeType === undefined) {
|
|
201
|
+
mimeType =
|
|
202
|
+
this._fileFormat === FileType.xls
|
|
203
|
+
? 'application/vnd.ms-excel'
|
|
204
|
+
: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
|
|
205
|
+
}
|
|
206
206
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
const blob = new Blob(chunks as BlobPart[], { type: mimeType });
|
|
218
|
-
const url = URL.createObjectURL(blob);
|
|
219
|
-
|
|
220
|
-
// download with anchor tag
|
|
221
|
-
const a = createDomElement('a', { href: url, download: filename }, document.body);
|
|
222
|
-
a.click();
|
|
223
|
-
document.body.removeChild(a);
|
|
224
|
-
URL.revokeObjectURL(url);
|
|
225
|
-
this._pubSubService?.publish('onAfterExportToExcel', { filename, mimeType });
|
|
226
|
-
resolve(true);
|
|
227
|
-
} catch (err) {
|
|
228
|
-
// fallback to legacy export if streaming is not supported
|
|
229
|
-
this.legacyExcelExport(filename, mimeType, resolve);
|
|
207
|
+
const filename = `${this._excelExportOptions.filename}.${this._fileFormat}`;
|
|
208
|
+
|
|
209
|
+
if (this._fileFormat === FileType.xlsx && useStreamingExport) {
|
|
210
|
+
try {
|
|
211
|
+
const stream = createExcelFileStream(this._workbook, { chunkSize: 1000 });
|
|
212
|
+
const chunks: Uint8Array[] = [];
|
|
213
|
+
for await (const chunk of stream as AsyncIterable<Uint8Array>) {
|
|
214
|
+
chunks.push(chunk);
|
|
230
215
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
216
|
+
|
|
217
|
+
const blob = new Blob(chunks as BlobPart[], { type: mimeType });
|
|
218
|
+
const url = URL.createObjectURL(blob);
|
|
219
|
+
|
|
220
|
+
// download with anchor tag
|
|
221
|
+
const a = createDomElement('a', { href: url, download: filename }, document.body);
|
|
222
|
+
a.click();
|
|
223
|
+
document.body.removeChild(a);
|
|
224
|
+
URL.revokeObjectURL(url);
|
|
225
|
+
this._pubSubService?.publish('onAfterExportToExcel', { filename, mimeType });
|
|
226
|
+
return true;
|
|
227
|
+
} catch (err) {
|
|
228
|
+
// fallback to legacy export if streaming is not supported
|
|
229
|
+
return await this.legacyExcelExportAsync(filename, mimeType);
|
|
234
230
|
}
|
|
235
|
-
}
|
|
236
|
-
|
|
231
|
+
} else {
|
|
232
|
+
// fallback to legacy export for non-xlsx or if useStreamingExport is false
|
|
233
|
+
return await this.legacyExcelExportAsync(filename, mimeType);
|
|
234
|
+
}
|
|
235
|
+
} /** v8 ignore next */ catch (error) {
|
|
236
|
+
console.error('Excel export failed:', error);
|
|
237
|
+
this._pubSubService?.publish('onAfterExportToExcel', { error });
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
237
240
|
}
|
|
238
241
|
|
|
239
242
|
/**
|
|
@@ -264,7 +267,10 @@ export class ExcelExportService implements ExternalResource, BaseExcelExportServ
|
|
|
264
267
|
// protected functions
|
|
265
268
|
// -----------------------
|
|
266
269
|
|
|
267
|
-
|
|
270
|
+
/**
|
|
271
|
+
* Async version of getDataOutput with yielding for UI responsiveness during large dataset processing
|
|
272
|
+
*/
|
|
273
|
+
protected async getDataOutputAsync(): Promise<Array<string[] | ExcelColumnMetadata[]>> {
|
|
268
274
|
const columns = this._grid?.getColumns() || [];
|
|
269
275
|
|
|
270
276
|
// data variable which will hold all the fields data of a row
|
|
@@ -288,8 +294,8 @@ export class ExcelExportService implements ExternalResource, BaseExcelExportServ
|
|
|
288
294
|
// also style the headers, defaults to Bold but user could pass his own style
|
|
289
295
|
outputData.push(this.getColumnHeaderData(columns, { style: columnHeaderStyleId }));
|
|
290
296
|
|
|
291
|
-
// Populate the rest of the Grid Data
|
|
292
|
-
this.
|
|
297
|
+
// Populate the rest of the Grid Data by reading directly from DataView with yielding for responsiveness
|
|
298
|
+
await this.pushAllGridRowDataToArrayAsync(outputData, columns);
|
|
293
299
|
|
|
294
300
|
return outputData;
|
|
295
301
|
}
|
|
@@ -389,9 +395,8 @@ export class ExcelExportService implements ExternalResource, BaseExcelExportServ
|
|
|
389
395
|
if (Array.isArray(grouping) && grouping.length > 0) {
|
|
390
396
|
this._hasGroupedItems = true;
|
|
391
397
|
return groupByColumnHeader;
|
|
392
|
-
} else {
|
|
393
|
-
this._hasGroupedItems = false;
|
|
394
398
|
}
|
|
399
|
+
this._hasGroupedItems = false;
|
|
395
400
|
return null;
|
|
396
401
|
}
|
|
397
402
|
|
|
@@ -405,12 +410,11 @@ export class ExcelExportService implements ExternalResource, BaseExcelExportServ
|
|
|
405
410
|
if (Array.isArray(columns)) {
|
|
406
411
|
// Populate the Grouped Column Header, pull the columnGroup(Key) defined
|
|
407
412
|
columns.forEach((columnDef) => {
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
}
|
|
413
|
+
const groupedHeaderTitle =
|
|
414
|
+
columnDef.columnGroupKey && this._gridOptions.enableTranslate && this._translaterService?.translate
|
|
415
|
+
? this._translaterService.translate(columnDef.columnGroupKey)
|
|
416
|
+
: columnDef.columnGroup || '';
|
|
417
|
+
|
|
414
418
|
const skippedField = columnDef.excludeFromExport || false;
|
|
415
419
|
|
|
416
420
|
// if column width is 0px, then we consider that field as a hidden field and should not be part of the export
|
|
@@ -457,36 +461,96 @@ export class ExcelExportService implements ExternalResource, BaseExcelExportServ
|
|
|
457
461
|
|
|
458
462
|
/**
|
|
459
463
|
* Get all the grid row data and return that as an output string
|
|
464
|
+
* Async version of pushAllGridRowDataToArray with yielding for UI responsiveness during large dataset processing.
|
|
465
|
+
* Processes rows directly from DataView with periodic yielding for responsiveness.
|
|
460
466
|
*/
|
|
461
|
-
protected
|
|
467
|
+
protected async pushAllGridRowDataToArrayAsync(
|
|
462
468
|
originalDaraArray: Array<Array<string | ExcelColumnMetadata | number>>,
|
|
463
469
|
columns: Column[]
|
|
464
|
-
): Array<Array<string | ExcelColumnMetadata | number
|
|
465
|
-
const
|
|
470
|
+
): Promise<Array<Array<string | ExcelColumnMetadata | number>>> {
|
|
471
|
+
const dataView = this._dataView;
|
|
472
|
+
const lineCount = dataView.getLength();
|
|
473
|
+
|
|
474
|
+
// Yield periodically based on dataset size
|
|
475
|
+
const YIELD_FREQUENCY = lineCount < 1000 ? 0 : lineCount < 10000 ? 1000 : 500;
|
|
466
476
|
|
|
467
|
-
//
|
|
477
|
+
// Update the hasGroupedItems flag from current grouping
|
|
478
|
+
const grouping = dataView.getGrouping();
|
|
479
|
+
this._hasGroupedItems = Array.isArray(grouping) && grouping.length > 0;
|
|
480
|
+
|
|
481
|
+
// Read rows directly from DataView
|
|
468
482
|
for (let rowNumber = 0; rowNumber < lineCount; rowNumber++) {
|
|
469
|
-
const itemObj =
|
|
483
|
+
const itemObj = dataView.getItem(rowNumber);
|
|
470
484
|
|
|
471
485
|
// make sure we have a filled object AND that the item doesn't include the "getItem" method
|
|
472
486
|
// this happen could happen with an opened Row Detail as it seems to include an empty Slick DataView (we'll just skip those lines)
|
|
473
487
|
if (itemObj && !itemObj.hasOwnProperty('getItem')) {
|
|
474
488
|
// Normal row (not grouped by anything) would have an ID which was predefined in the Grid Columns definition
|
|
475
489
|
if (itemObj[this._datasetIdPropName] !== null && itemObj[this._datasetIdPropName] !== undefined) {
|
|
476
|
-
//
|
|
490
|
+
// Read a regular row
|
|
477
491
|
originalDaraArray.push(this.readRegularRowData(columns, rowNumber, itemObj, rowNumber));
|
|
478
492
|
} else if (this._hasGroupedItems && itemObj.__groupTotals === undefined) {
|
|
479
493
|
// get the group row
|
|
480
494
|
originalDaraArray.push([this.readGroupedRowTitle(itemObj)]);
|
|
481
495
|
} else if (itemObj.__groupTotals) {
|
|
482
|
-
// else if the row is a Group By and we have
|
|
496
|
+
// else if the row is a Group By and we have aggregators, then a property of '__groupTotals' would exist under that object
|
|
483
497
|
originalDaraArray.push(this.readGroupedTotalRows(columns, itemObj, rowNumber));
|
|
484
498
|
}
|
|
485
499
|
}
|
|
500
|
+
|
|
501
|
+
// Yield to event loop
|
|
502
|
+
if (YIELD_FREQUENCY > 0 && rowNumber > 0 && rowNumber % YIELD_FREQUENCY === 0) {
|
|
503
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
504
|
+
}
|
|
486
505
|
}
|
|
506
|
+
|
|
487
507
|
return originalDaraArray;
|
|
488
508
|
}
|
|
489
509
|
|
|
510
|
+
/** OPTIMIZATION: Pre-calculate column metadata to avoid repeated calculations */
|
|
511
|
+
protected preCalculateColumnMetadata(columns: Column[]): Map<string, any> {
|
|
512
|
+
const cache = new Map();
|
|
513
|
+
|
|
514
|
+
// OPTIMIZATION: Pre-calculate if we have complex spanning to avoid checking on every row
|
|
515
|
+
const hasComplexSpanning = this._gridOptions.enableCellRowSpan || columns.some((col) => col.colspan || col.rowspan);
|
|
516
|
+
|
|
517
|
+
for (const columnDef of columns) {
|
|
518
|
+
if (!columnDef.excludeFromExport) {
|
|
519
|
+
const fieldType = getColumnFieldType(columnDef);
|
|
520
|
+
const exportOptions = { ...this._excelExportOptions };
|
|
521
|
+
|
|
522
|
+
// Pre-calculate date formatting logic
|
|
523
|
+
if (columnDef.exportWithFormatter !== false && isColumnDateType(fieldType)) {
|
|
524
|
+
exportOptions.exportWithFormatter = true;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
cache.set(String(columnDef.id), {
|
|
528
|
+
fieldType,
|
|
529
|
+
exportOptions,
|
|
530
|
+
hasFormatter: !!columnDef.formatter,
|
|
531
|
+
sanitizeData: columnDef.sanitizeDataExport || this._excelExportOptions.sanitizeDataExport,
|
|
532
|
+
field: columnDef.field,
|
|
533
|
+
hasComplexSpanning, // Cache this to avoid repeated checks
|
|
534
|
+
});
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
return cache;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
/** OPTIMIZATION: Efficient yielding - use the fastest available method */
|
|
542
|
+
protected async efficientYield(): Promise<void> {
|
|
543
|
+
// Use scheduler.postTask if available (Chrome 94+) - fastest
|
|
544
|
+
if (typeof (globalThis as any).scheduler?.postTask === 'function') {
|
|
545
|
+
return new Promise((resolve) => {
|
|
546
|
+
(globalThis as any).scheduler.postTask(resolve, { priority: 'user-blocking' });
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
// Use setTimeout(0) - most reliable and often fastest
|
|
551
|
+
return new Promise((resolve) => setTimeout(resolve, 0));
|
|
552
|
+
}
|
|
553
|
+
|
|
490
554
|
/**
|
|
491
555
|
* Get the data of a regular row (a row without grouping)
|
|
492
556
|
* @param {Array<Object>} columns - column definitions
|
|
@@ -733,11 +797,16 @@ export class ExcelExportService implements ExternalResource, BaseExcelExportServ
|
|
|
733
797
|
return outputStrings;
|
|
734
798
|
}
|
|
735
799
|
|
|
736
|
-
/**
|
|
737
|
-
protected
|
|
738
|
-
|
|
800
|
+
/** Async version of legacy Excel export fallback method */
|
|
801
|
+
protected async legacyExcelExportAsync(filename: string, mimeType: string): Promise<boolean> {
|
|
802
|
+
try {
|
|
803
|
+
await downloadExcelFile(this._workbook, filename, { mimeType });
|
|
739
804
|
this._pubSubService?.publish(`onAfterExportToExcel`, { filename, mimeType });
|
|
740
|
-
|
|
741
|
-
})
|
|
805
|
+
return true;
|
|
806
|
+
} catch (error) {
|
|
807
|
+
console.error('Legacy Excel export failed:', error);
|
|
808
|
+
this._pubSubService?.publish('onAfterExportToExcel', { error });
|
|
809
|
+
return false;
|
|
810
|
+
}
|
|
742
811
|
}
|
|
743
812
|
}
|