@slickgrid-universal/excel-export 2.1.3 → 2.2.1

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.
Files changed (39) hide show
  1. package/dist/commonjs/excelExport.service.d.ts +33 -8
  2. package/dist/commonjs/excelExport.service.js +96 -80
  3. package/dist/commonjs/excelExport.service.js.map +1 -1
  4. package/dist/commonjs/excelUtils.d.ts +28 -0
  5. package/dist/commonjs/excelUtils.js +211 -0
  6. package/dist/commonjs/excelUtils.js.map +1 -0
  7. package/dist/commonjs/interfaces/excelStylesheet.interface.d.ts +18 -17
  8. package/dist/commonjs/interfaces/index.d.ts +0 -3
  9. package/dist/commonjs/interfaces/index.js +0 -3
  10. package/dist/commonjs/interfaces/index.js.map +1 -1
  11. package/dist/esm/excelExport.service.d.ts +33 -8
  12. package/dist/esm/excelExport.service.js +97 -81
  13. package/dist/esm/excelExport.service.js.map +1 -1
  14. package/dist/esm/excelUtils.d.ts +28 -0
  15. package/dist/esm/excelUtils.js +202 -0
  16. package/dist/esm/excelUtils.js.map +1 -0
  17. package/dist/esm/interfaces/excelStylesheet.interface.d.ts +18 -17
  18. package/dist/esm/interfaces/index.d.ts +0 -3
  19. package/dist/esm/interfaces/index.js +0 -3
  20. package/dist/esm/interfaces/index.js.map +1 -1
  21. package/package.json +3 -3
  22. package/dist/commonjs/interfaces/excelExportOption.interface.d.ts +0 -31
  23. package/dist/commonjs/interfaces/excelExportOption.interface.js +0 -3
  24. package/dist/commonjs/interfaces/excelExportOption.interface.js.map +0 -1
  25. package/dist/commonjs/interfaces/excelWorkbook.interface.d.ts +0 -16
  26. package/dist/commonjs/interfaces/excelWorkbook.interface.js +0 -3
  27. package/dist/commonjs/interfaces/excelWorkbook.interface.js.map +0 -1
  28. package/dist/commonjs/interfaces/excelWorksheet.interface.d.ts +0 -35
  29. package/dist/commonjs/interfaces/excelWorksheet.interface.js +0 -3
  30. package/dist/commonjs/interfaces/excelWorksheet.interface.js.map +0 -1
  31. package/dist/esm/interfaces/excelExportOption.interface.d.ts +0 -31
  32. package/dist/esm/interfaces/excelExportOption.interface.js +0 -2
  33. package/dist/esm/interfaces/excelExportOption.interface.js.map +0 -1
  34. package/dist/esm/interfaces/excelWorkbook.interface.d.ts +0 -16
  35. package/dist/esm/interfaces/excelWorkbook.interface.js +0 -2
  36. package/dist/esm/interfaces/excelWorkbook.interface.js.map +0 -1
  37. package/dist/esm/interfaces/excelWorksheet.interface.d.ts +0 -35
  38. package/dist/esm/interfaces/excelWorksheet.interface.js +0 -2
  39. package/dist/esm/interfaces/excelWorksheet.interface.js.map +0 -1
@@ -1,10 +1,9 @@
1
1
  import * as ExcelBuilder from 'excel-builder-webpacker';
2
- import * as moment_ from 'moment-mini';
3
- const moment = moment_['default'] || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670
4
2
  import {
5
3
  // utility functions
6
- exportWithFormatterWhenDefined, getTranslationPrefix, mapMomentDateFormatWithFieldType, sanitizeHtmlToText, Constants, FileType, FieldType, } from '@slickgrid-universal/common';
4
+ exportWithFormatterWhenDefined, getTranslationPrefix, sanitizeHtmlToText, Constants, FieldType, FileType, getColumnFieldType, isColumnDateType, } from '@slickgrid-universal/common';
7
5
  import { addWhiteSpaces, deepCopy, titleCase } from '@slickgrid-universal/utils';
6
+ import { getGroupTotalValue, getExcelFormatFromGridFormatter, useCellFormatByFieldType, } from './excelUtils';
8
7
  const DEFAULT_EXPORT_OPTIONS = {
9
8
  filename: 'export',
10
9
  format: FileType.xlsx
@@ -16,6 +15,9 @@ export class ExcelExportService {
16
15
  this._hasColumnTitlePreHeader = false;
17
16
  this._hasGroupedItems = false;
18
17
  this._pubSubService = null;
18
+ // references of each detected cell and/or group total formats
19
+ this._regularCellExcelFormats = {};
20
+ this._groupTotalExcelFormats = {};
19
21
  /** ExcelExportService class name which is use to find service instance in the external registered services */
20
22
  this.className = 'ExcelExportService';
21
23
  }
@@ -30,7 +32,20 @@ export class ExcelExportService {
30
32
  }
31
33
  /** Getter for the Grid Options pulled through the Grid Object */
32
34
  get _gridOptions() {
33
- return (this._grid && this._grid.getOptions) ? this._grid.getOptions() : {};
35
+ var _a;
36
+ return ((_a = this._grid) === null || _a === void 0 ? void 0 : _a.getOptions()) || {};
37
+ }
38
+ get stylesheet() {
39
+ return this._stylesheet;
40
+ }
41
+ get stylesheetFormats() {
42
+ return this._stylesheetFormats;
43
+ }
44
+ get groupTotalExcelFormats() {
45
+ return this._groupTotalExcelFormats;
46
+ }
47
+ get regularCellExcelFormats() {
48
+ return this._regularCellExcelFormats;
34
49
  }
35
50
  dispose() {
36
51
  var _a;
@@ -62,14 +77,18 @@ export class ExcelExportService {
62
77
  * Example: exportToExcel({ format: FileType.csv, delimiter: DelimiterType.comma })
63
78
  */
64
79
  exportToExcel(options) {
80
+ var _a;
65
81
  if (!this._grid || !this._dataView || !this._pubSubService) {
66
82
  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"?');
67
83
  }
84
+ (_a = this._pubSubService) === null || _a === void 0 ? void 0 : _a.publish(`onBeforeExportToExcel`, true);
85
+ this._excelExportOptions = deepCopy({ ...DEFAULT_EXPORT_OPTIONS, ...this._gridOptions.excelExportOptions, ...options });
86
+ this._fileFormat = this._excelExportOptions.format || FileType.xlsx;
87
+ // reset references of detected Excel formats
88
+ this._regularCellExcelFormats = {};
89
+ this._groupTotalExcelFormats = {};
90
+ // wrap in a Promise so that we can add loading spinner
68
91
  return new Promise(resolve => {
69
- var _a;
70
- (_a = this._pubSubService) === null || _a === void 0 ? void 0 : _a.publish(`onBeforeExportToExcel`, true);
71
- this._excelExportOptions = deepCopy({ ...DEFAULT_EXPORT_OPTIONS, ...this._gridOptions.excelExportOptions, ...options });
72
- this._fileFormat = this._excelExportOptions.format || FileType.xlsx;
73
92
  // prepare the Excel Workbook & Sheet
74
93
  // we can use ExcelBuilder constructor with WebPack but we need to use function calls with RequireJS/SystemJS
75
94
  const worksheetOptions = { name: this._excelExportOptions.sheetName || 'Sheet1' };
@@ -77,26 +96,26 @@ export class ExcelExportService {
77
96
  this._sheet = ExcelBuilder.Worksheet ? new ExcelBuilder.Worksheet(worksheetOptions) : this._workbook.createWorksheet(worksheetOptions);
78
97
  // add any Excel Format/Stylesheet to current Workbook
79
98
  this._stylesheet = this._workbook.getStyleSheet();
99
+ // create some common default Excel formatters that will be used
80
100
  const boldFormatter = this._stylesheet.createFormat({ font: { bold: true } });
81
101
  const stringFormatter = this._stylesheet.createFormat({ format: '@' });
82
102
  const numberFormatter = this._stylesheet.createFormat({ format: '0' });
83
- const usdFormatter = this._stylesheet.createFormat({ format: '$#,##0.00' });
84
103
  this._stylesheetFormats = {
85
104
  boldFormatter,
86
- dollarFormatter: usdFormatter,
87
105
  numberFormatter,
88
106
  stringFormatter,
89
107
  };
108
+ this._sheet.setColumnFormats([boldFormatter]);
90
109
  // get the CSV output from the grid data
91
110
  const dataOutput = this.getDataOutput();
92
111
  // trigger a download file
93
112
  // wrap it into a setTimeout so that the EventAggregator has enough time to start a pre-process like showing a spinner
94
113
  setTimeout(async () => {
95
- var _a;
96
- if (this._gridOptions && this._gridOptions.excelExportOptions && this._gridOptions.excelExportOptions.customExcelHeader) {
114
+ var _a, _b, _c, _d, _e, _f, _g;
115
+ if ((_b = (_a = this._gridOptions) === null || _a === void 0 ? void 0 : _a.excelExportOptions) === null || _b === void 0 ? void 0 : _b.customExcelHeader) {
97
116
  this._gridOptions.excelExportOptions.customExcelHeader(this._workbook, this._sheet);
98
117
  }
99
- const columns = this._grid && this._grid.getColumns && this._grid.getColumns() || [];
118
+ const columns = ((_c = this._grid) === null || _c === void 0 ? void 0 : _c.getColumns()) || [];
100
119
  this._sheet.setColumns(this.getColumnStyles(columns));
101
120
  const currentSheetData = this._sheet.data;
102
121
  let finalOutput = currentSheetData;
@@ -106,16 +125,22 @@ export class ExcelExportService {
106
125
  this._sheet.setData(finalOutput);
107
126
  this._workbook.addWorksheet(this._sheet);
108
127
  // using ExcelBuilder.Builder.createFile with WebPack but ExcelBuilder.createFile with RequireJS/SystemJS
109
- const createFileFn = ExcelBuilder.Builder && ExcelBuilder.Builder.createFile ? ExcelBuilder.Builder.createFile : ExcelBuilder.createFile;
110
- const mimeType = this._fileFormat === FileType.xls ? 'application/vnd.ms-excel' : 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet ';
111
- const excelBlob = await createFileFn(this._workbook, { type: 'blob', mimeType });
128
+ const createFileFn = (_e = (_d = ExcelBuilder.Builder) === null || _d === void 0 ? void 0 : _d.createFile) !== null && _e !== void 0 ? _e : ExcelBuilder.createFile;
129
+ // MIME type could be undefined, if that's the case we'll detect the type by its file extension
130
+ // user could also provide its own mime type, if however an empty string is provided we will consider to be without any MIME type)
131
+ let mimeType = (_f = this._excelExportOptions) === null || _f === void 0 ? void 0 : _f.mimeType;
132
+ if (mimeType === undefined) {
133
+ mimeType = this._fileFormat === FileType.xls ? 'application/vnd.ms-excel' : 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
134
+ }
135
+ const createFileOptions = mimeType === '' ? { type: 'blob' } : { type: 'blob', mimeType };
136
+ const excelBlob = await createFileFn(this._workbook, createFileOptions);
112
137
  const downloadOptions = {
113
138
  filename: `${this._excelExportOptions.filename}.${this._fileFormat}`,
114
139
  format: this._fileFormat
115
140
  };
116
141
  // start downloading but add the Blob property only on the start download not on the event itself
117
142
  this.startDownloadFile({ ...downloadOptions, blob: excelBlob, data: this._sheet.data });
118
- (_a = this._pubSubService) === null || _a === void 0 ? void 0 : _a.publish(`onAfterExportToExcel`, downloadOptions);
143
+ (_g = this._pubSubService) === null || _g === void 0 ? void 0 : _g.publish(`onAfterExportToExcel`, downloadOptions);
119
144
  resolve(true);
120
145
  });
121
146
  });
@@ -169,61 +194,16 @@ export class ExcelExportService {
169
194
  }
170
195
  }
171
196
  }
172
- /** use different Excel Stylesheet Format as per the Field Type */
173
- useCellFormatByFieldType(data, fieldType) {
174
- let outputData = data;
175
- switch (fieldType) {
176
- case FieldType.dateTime:
177
- case FieldType.dateTimeIso:
178
- case FieldType.dateTimeShortIso:
179
- case FieldType.dateTimeIsoAmPm:
180
- case FieldType.dateTimeIsoAM_PM:
181
- case FieldType.dateEuro:
182
- case FieldType.dateEuroShort:
183
- case FieldType.dateTimeEuro:
184
- case FieldType.dateTimeShortEuro:
185
- case FieldType.dateTimeEuroAmPm:
186
- case FieldType.dateTimeEuroAM_PM:
187
- case FieldType.dateTimeEuroShort:
188
- case FieldType.dateTimeEuroShortAmPm:
189
- case FieldType.dateUs:
190
- case FieldType.dateUsShort:
191
- case FieldType.dateTimeUs:
192
- case FieldType.dateTimeShortUs:
193
- case FieldType.dateTimeUsAmPm:
194
- case FieldType.dateTimeUsAM_PM:
195
- case FieldType.dateTimeUsShort:
196
- case FieldType.dateTimeUsShortAmPm:
197
- case FieldType.dateUtc:
198
- case FieldType.date:
199
- case FieldType.dateIso:
200
- outputData = data;
201
- if (data) {
202
- const defaultDateFormat = mapMomentDateFormatWithFieldType(fieldType);
203
- const isDateValid = moment(data, defaultDateFormat, false).isValid();
204
- const outputDate = (data && isDateValid) ? moment(data).format(defaultDateFormat) : data;
205
- const dateFormatter = this._stylesheet.createFormat({ format: defaultDateFormat });
206
- outputData = { value: outputDate, metadata: { style: dateFormatter.id } };
207
- }
208
- break;
209
- case FieldType.number:
210
- const num = parseFloat(data);
211
- const val = isNaN(num) ? null : num;
212
- outputData = { value: val, metadata: { style: this._stylesheetFormats.numberFormatter.id } };
213
- break;
214
- default:
215
- outputData = data;
216
- }
217
- return outputData;
218
- }
219
197
  // -----------------------
220
198
  // protected functions
221
199
  // -----------------------
222
200
  getDataOutput() {
223
- const columns = this._grid && this._grid.getColumns && this._grid.getColumns() || [];
201
+ var _a, _b;
202
+ const columns = ((_a = this._grid) === null || _a === void 0 ? void 0 : _a.getColumns()) || [];
224
203
  // data variable which will hold all the fields data of a row
225
204
  const outputData = [];
226
- const columnHeaderStyle = this._gridOptions && this._gridOptions.excelExportOptions && this._gridOptions.excelExportOptions.columnHeaderStyle;
205
+ const gridExportOptions = (_b = this._gridOptions) === null || _b === void 0 ? void 0 : _b.excelExportOptions;
206
+ const columnHeaderStyle = gridExportOptions === null || gridExportOptions === void 0 ? void 0 : gridExportOptions.columnHeaderStyle;
227
207
  let columnHeaderStyleId = this._stylesheetFormats.boldFormatter.id;
228
208
  if (columnHeaderStyle) {
229
209
  columnHeaderStyleId = this._stylesheet.createFormat(columnHeaderStyle).id;
@@ -254,13 +234,13 @@ export class ExcelExportService {
254
234
  });
255
235
  }
256
236
  columns.forEach((columnDef) => {
257
- var _a, _b, _c, _d, _e;
237
+ var _a, _b, _c, _d, _e, _f, _g;
258
238
  const skippedField = (_a = columnDef.excludeFromExport) !== null && _a !== void 0 ? _a : false;
259
239
  // if column width is 0, then we consider that field as a hidden field and should not be part of the export
260
240
  if ((columnDef.width === undefined || columnDef.width > 0) && !skippedField) {
261
241
  columnStyles.push({
262
242
  bestFit: true,
263
- width: (_e = (_b = columnDef.exportColumnWidth) !== null && _b !== void 0 ? _b : (_d = (_c = this._gridOptions) === null || _c === void 0 ? void 0 : _c.excelExportOptions) === null || _d === void 0 ? void 0 : _d.customColumnWidth) !== null && _e !== void 0 ? _e : 10
243
+ width: (_g = (_d = (_b = columnDef.exportColumnWidth) !== null && _b !== void 0 ? _b : (_c = columnDef.excelExportOptions) === null || _c === void 0 ? void 0 : _c.width) !== null && _d !== void 0 ? _d : (_f = (_e = this._gridOptions) === null || _e === void 0 ? void 0 : _e.excelExportOptions) === null || _f === void 0 ? void 0 : _f.customColumnWidth) !== null && _g !== void 0 ? _g : 10
264
244
  });
265
245
  }
266
246
  });
@@ -425,7 +405,7 @@ export class ExcelExportService {
425
405
  * @param {Object} itemObj - item datacontext object
426
406
  */
427
407
  readRegularRowData(columns, row, itemObj) {
428
- var _a;
408
+ var _a, _b, _c;
429
409
  let idx = 0;
430
410
  const rowOutputStrings = [];
431
411
  const columnsLn = columns.length;
@@ -434,7 +414,6 @@ export class ExcelExportService {
434
414
  const itemMetadata = this._dataView.getItemMetadata(row);
435
415
  for (let col = 0; col < columnsLn; col++) {
436
416
  const columnDef = columns[col];
437
- const fieldType = columnDef.outputType || columnDef.type || FieldType.string;
438
417
  // skip excluded column
439
418
  if (columnDef.excludeFromExport) {
440
419
  continue;
@@ -488,17 +467,35 @@ export class ExcelExportService {
488
467
  }
489
468
  }
490
469
  else {
470
+ let itemData = '';
471
+ const fieldType = getColumnFieldType(columnDef);
491
472
  // -- Read Data & Push to Data Array
492
- // get the output by analyzing if we'll pull the value from the cell or from a formatter
493
- let itemData = exportWithFormatterWhenDefined(row, col, columnDef, itemObj, this._grid, this._excelExportOptions);
473
+ // user might want to export with Formatter, and/or auto-detect Excel format, and/or export as regular cell data
474
+ // for column that are Date type, we'll always export with their associated Date Formatters unless `exportWithFormatter` is specifically set to false
475
+ const exportOptions = { ...this._excelExportOptions };
476
+ if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.exportWithFormatter) !== false && isColumnDateType(fieldType)) {
477
+ exportOptions.exportWithFormatter = true;
478
+ }
479
+ itemData = exportWithFormatterWhenDefined(row, col, columnDef, itemObj, this._grid, exportOptions);
480
+ // auto-detect best possible Excel format, unless the user provide his own formatting,
481
+ // we only do this check once per column (everything after that will be pull from temp ref)
482
+ if (!this._regularCellExcelFormats.hasOwnProperty(columnDef.id)) {
483
+ const cellStyleFormat = useCellFormatByFieldType(this._stylesheet, this._stylesheetFormats, columnDef, this._grid);
484
+ // user could also override style and/or valueParserCallback
485
+ if ((_b = columnDef.excelExportOptions) === null || _b === void 0 ? void 0 : _b.style) {
486
+ cellStyleFormat.stylesheetFormatterId = this._stylesheet.createFormat(columnDef.excelExportOptions.style).id;
487
+ }
488
+ if ((_c = columnDef.excelExportOptions) === null || _c === void 0 ? void 0 : _c.valueParserCallback) {
489
+ cellStyleFormat.getDataValueParser = columnDef.excelExportOptions.valueParserCallback;
490
+ }
491
+ this._regularCellExcelFormats[columnDef.id] = cellStyleFormat;
492
+ }
493
+ const { stylesheetFormatterId, getDataValueParser } = this._regularCellExcelFormats[columnDef.id];
494
+ itemData = getDataValueParser(itemData, columnDef, stylesheetFormatterId, this._stylesheet);
494
495
  // does the user want to sanitize the output data (remove HTML tags)?
495
- if (columnDef.sanitizeDataExport || this._excelExportOptions.sanitizeDataExport) {
496
+ if (typeof itemData === 'string' && (columnDef.sanitizeDataExport || this._excelExportOptions.sanitizeDataExport)) {
496
497
  itemData = sanitizeHtmlToText(itemData);
497
498
  }
498
- // use different Excel Stylesheet Format as per the Field Type
499
- if (!columnDef.exportWithFormatter) {
500
- itemData = this.useCellFormatByFieldType(itemData, fieldType);
501
- }
502
499
  rowOutputStrings.push(itemData);
503
500
  idx++;
504
501
  }
@@ -528,19 +525,38 @@ export class ExcelExportService {
528
525
  const groupingAggregatorRowText = this._excelExportOptions.groupingAggregatorRowText || '';
529
526
  const outputStrings = [groupingAggregatorRowText];
530
527
  columns.forEach((columnDef) => {
528
+ var _a, _b, _c, _d, _e;
531
529
  let itemData = '';
530
+ const fieldType = getColumnFieldType(columnDef);
532
531
  const skippedField = columnDef.excludeFromExport || false;
533
532
  // if there's a exportCustomGroupTotalsFormatter or groupTotalsFormatter, we will re-run it to get the exact same output as what is shown in UI
534
533
  if (columnDef.exportCustomGroupTotalsFormatter) {
535
534
  itemData = columnDef.exportCustomGroupTotalsFormatter(itemObj, columnDef, this._grid);
536
535
  }
537
- else {
538
- if (columnDef.groupTotalsFormatter) {
539
- itemData = columnDef.groupTotalsFormatter(itemObj, columnDef, this._grid);
536
+ // auto-detect best possible Excel format for Group Totals, unless the user provide his own formatting,
537
+ // we only do this check once per column (everything after that will be pull from temp ref)
538
+ if (fieldType === FieldType.number) {
539
+ let groupCellFormat = this._groupTotalExcelFormats[columnDef.id];
540
+ if (!(groupCellFormat === null || groupCellFormat === void 0 ? void 0 : groupCellFormat.groupType)) {
541
+ groupCellFormat = getExcelFormatFromGridFormatter(this._stylesheet, this._stylesheetFormats, columnDef, this._grid, 'group');
542
+ if ((_a = columnDef.groupTotalsExcelExportOptions) === null || _a === void 0 ? void 0 : _a.style) {
543
+ groupCellFormat.stylesheetFormatter = this._stylesheet.createFormat(columnDef.groupTotalsExcelExportOptions.style);
544
+ }
545
+ this._groupTotalExcelFormats[columnDef.id] = groupCellFormat;
546
+ }
547
+ const groupTotalParser = (_c = (_b = columnDef.groupTotalsExcelExportOptions) === null || _b === void 0 ? void 0 : _b.valueParserCallback) !== null && _c !== void 0 ? _c : getGroupTotalValue;
548
+ if (((_d = itemObj[groupCellFormat.groupType]) === null || _d === void 0 ? void 0 : _d[columnDef.field]) !== undefined) {
549
+ itemData = {
550
+ value: groupTotalParser(itemObj, columnDef, groupCellFormat.groupType, this._stylesheet),
551
+ metadata: { style: (_e = groupCellFormat.stylesheetFormatter) === null || _e === void 0 ? void 0 : _e.id }
552
+ };
540
553
  }
541
554
  }
555
+ else if (columnDef.groupTotalsFormatter) {
556
+ itemData = columnDef.groupTotalsFormatter(itemObj, columnDef, this._grid);
557
+ }
542
558
  // does the user want to sanitize the output data (remove HTML tags)?
543
- if (columnDef.sanitizeDataExport || this._excelExportOptions.sanitizeDataExport) {
559
+ if (typeof itemData === 'string' && (columnDef.sanitizeDataExport || this._excelExportOptions.sanitizeDataExport)) {
544
560
  itemData = sanitizeHtmlToText(itemData);
545
561
  }
546
562
  // add the column (unless user wants to skip it)
@@ -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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"}
@@ -0,0 +1,28 @@
1
+ import { Column, ExcelStylesheet, FormatterType, GetDataValueCallback, SlickGrid } from '@slickgrid-universal/common';
2
+ export type ExcelFormatter = object & {
3
+ id: number;
4
+ };
5
+ export declare const getExcelSameInputDataCallback: GetDataValueCallback;
6
+ export declare const getExcelNumberCallback: GetDataValueCallback;
7
+ /** use different Excel Stylesheet Format as per the Field Type */
8
+ export declare function useCellFormatByFieldType(stylesheet: ExcelStylesheet, stylesheetFormatters: any, columnDef: Column, grid: SlickGrid): {
9
+ stylesheetFormatterId: number | undefined;
10
+ getDataValueParser: GetDataValueCallback;
11
+ };
12
+ export declare function getGroupTotalValue(totals: any, columnDef: Column, groupType: string): any;
13
+ /** Get numeric formatter options when defined or use default values (minDecimal, maxDecimal, thousandSeparator, decimalSeparator, wrapNegativeNumber) */
14
+ export declare function getNumericFormatterOptions(columnDef: Column, grid: SlickGrid, formatterType: FormatterType): {
15
+ minDecimal: any;
16
+ maxDecimal: any;
17
+ decimalSeparator: any;
18
+ thousandSeparator: any;
19
+ wrapNegativeNumber: any;
20
+ currencyPrefix: any;
21
+ currencySuffix: any;
22
+ numberPrefix: string;
23
+ numberSuffix: string;
24
+ };
25
+ export declare function getExcelFormatFromGridFormatter(stylesheet: ExcelStylesheet, stylesheetFormatters: any, columnDef: Column, grid: SlickGrid, formatterType: FormatterType): {
26
+ stylesheetFormatter: ExcelFormatter;
27
+ groupType: string;
28
+ };
@@ -0,0 +1,202 @@
1
+ import { FieldType, Formatters, getColumnFieldType, GroupTotalFormatters, isNumber, retrieveFormatterOptions, sanitizeHtmlToText, } from '@slickgrid-universal/common';
2
+ // define all type of potential excel data function callbacks
3
+ export const getExcelSameInputDataCallback = (data) => data;
4
+ export const getExcelNumberCallback = (data, _col, excelFormatterId) => ({
5
+ value: isNumber(data) ? +data : data,
6
+ metadata: { style: excelFormatterId }
7
+ });
8
+ /** use different Excel Stylesheet Format as per the Field Type */
9
+ export function useCellFormatByFieldType(stylesheet, stylesheetFormatters, columnDef, grid) {
10
+ const fieldType = getColumnFieldType(columnDef);
11
+ let stylesheetFormatterId;
12
+ let callback = getExcelSameInputDataCallback;
13
+ if (fieldType === FieldType.number) {
14
+ stylesheetFormatterId = getExcelFormatFromGridFormatter(stylesheet, stylesheetFormatters, columnDef, grid, 'cell').stylesheetFormatter.id;
15
+ callback = getExcelNumberCallback;
16
+ }
17
+ return { stylesheetFormatterId, getDataValueParser: callback };
18
+ }
19
+ export function getGroupTotalValue(totals, columnDef, groupType) {
20
+ var _a, _b;
21
+ return (_b = (_a = totals === null || totals === void 0 ? void 0 : totals[groupType]) === null || _a === void 0 ? void 0 : _a[columnDef.field]) !== null && _b !== void 0 ? _b : 0;
22
+ }
23
+ /** Get numeric formatter options when defined or use default values (minDecimal, maxDecimal, thousandSeparator, decimalSeparator, wrapNegativeNumber) */
24
+ export function getNumericFormatterOptions(columnDef, grid, formatterType) {
25
+ let dataType;
26
+ if (formatterType === 'group') {
27
+ switch (columnDef.groupTotalsFormatter) {
28
+ case GroupTotalFormatters.avgTotalsCurrency:
29
+ case GroupTotalFormatters.avgTotalsDollar:
30
+ case GroupTotalFormatters.sumTotalsCurrency:
31
+ case GroupTotalFormatters.sumTotalsCurrencyColored:
32
+ case GroupTotalFormatters.sumTotalsDollar:
33
+ case GroupTotalFormatters.sumTotalsDollarBold:
34
+ case GroupTotalFormatters.sumTotalsDollarColored:
35
+ case GroupTotalFormatters.sumTotalsDollarColoredBold:
36
+ dataType = 'currency';
37
+ break;
38
+ case GroupTotalFormatters.avgTotalsPercentage:
39
+ dataType = 'percent';
40
+ break;
41
+ case GroupTotalFormatters.avgTotals:
42
+ case GroupTotalFormatters.minTotals:
43
+ case GroupTotalFormatters.maxTotals:
44
+ case GroupTotalFormatters.sumTotals:
45
+ case GroupTotalFormatters.sumTotalsColored:
46
+ case GroupTotalFormatters.sumTotalsBold:
47
+ default:
48
+ // side note, formatters are using "regular" without any decimal limits (min, max),
49
+ // however in Excel export with custom format that doesn't work so well, we should use "decimal" to at least show optional decimals with "##"
50
+ dataType = 'decimal';
51
+ break;
52
+ }
53
+ }
54
+ else {
55
+ switch (columnDef.formatter) {
56
+ case Formatters.currency:
57
+ case Formatters.dollar:
58
+ case Formatters.dollarColored:
59
+ case Formatters.dollarColoredBold:
60
+ dataType = 'currency';
61
+ break;
62
+ case Formatters.percent:
63
+ case Formatters.percentComplete:
64
+ case Formatters.percentCompleteBar:
65
+ case Formatters.percentCompleteBarWithText:
66
+ case Formatters.percentSymbol:
67
+ dataType = 'percent';
68
+ break;
69
+ case Formatters.decimal:
70
+ default:
71
+ // use "decimal" instead of "regular" to show optional decimals "##" in Excel
72
+ dataType = 'decimal';
73
+ break;
74
+ }
75
+ }
76
+ return retrieveFormatterOptions(columnDef, grid, dataType, formatterType);
77
+ }
78
+ export function getExcelFormatFromGridFormatter(stylesheet, stylesheetFormatters, columnDef, grid, formatterType) {
79
+ let format = '';
80
+ let groupType = '';
81
+ let stylesheetFormatter;
82
+ const fieldType = getColumnFieldType(columnDef);
83
+ if (formatterType === 'group') {
84
+ switch (columnDef.groupTotalsFormatter) {
85
+ case GroupTotalFormatters.avgTotals:
86
+ case GroupTotalFormatters.avgTotalsCurrency:
87
+ case GroupTotalFormatters.avgTotalsDollar:
88
+ case GroupTotalFormatters.avgTotalsPercentage:
89
+ groupType = 'avg';
90
+ break;
91
+ case GroupTotalFormatters.minTotals:
92
+ groupType = 'min';
93
+ break;
94
+ case GroupTotalFormatters.maxTotals:
95
+ groupType = 'max';
96
+ break;
97
+ case GroupTotalFormatters.sumTotals:
98
+ case GroupTotalFormatters.sumTotalsBold:
99
+ case GroupTotalFormatters.sumTotalsColored:
100
+ case GroupTotalFormatters.sumTotalsCurrency:
101
+ case GroupTotalFormatters.sumTotalsCurrencyColored:
102
+ case GroupTotalFormatters.sumTotalsDollar:
103
+ case GroupTotalFormatters.sumTotalsDollarColoredBold:
104
+ case GroupTotalFormatters.sumTotalsDollarColored:
105
+ case GroupTotalFormatters.sumTotalsDollarBold:
106
+ groupType = 'sum';
107
+ break;
108
+ default:
109
+ stylesheetFormatter = stylesheetFormatters.numberFormatter;
110
+ break;
111
+ }
112
+ }
113
+ else {
114
+ switch (fieldType) {
115
+ case FieldType.number:
116
+ switch (columnDef.formatter) {
117
+ case Formatters.currency:
118
+ case Formatters.decimal:
119
+ case Formatters.dollar:
120
+ case Formatters.dollarColored:
121
+ case Formatters.dollarColoredBold:
122
+ case Formatters.percent:
123
+ case Formatters.percentComplete:
124
+ case Formatters.percentCompleteBar:
125
+ case Formatters.percentCompleteBarWithText:
126
+ case Formatters.percentSymbol:
127
+ format = createExcelFormatFromGridFormatter(columnDef, grid, 'cell');
128
+ break;
129
+ default:
130
+ stylesheetFormatter = stylesheetFormatters.numberFormatter;
131
+ break;
132
+ }
133
+ break;
134
+ }
135
+ }
136
+ if (!stylesheetFormatter && (columnDef.formatter || columnDef.groupTotalsFormatter)) {
137
+ format = createExcelFormatFromGridFormatter(columnDef, grid, formatterType, groupType);
138
+ if (!stylesheetFormatters.hasOwnProperty(format)) {
139
+ stylesheetFormatters[format] = stylesheet.createFormat({ format }); // save new formatter with its format as a prop key
140
+ }
141
+ stylesheetFormatter = stylesheetFormatters[format];
142
+ }
143
+ return { stylesheetFormatter: stylesheetFormatter, groupType };
144
+ }
145
+ // --
146
+ // private functions
147
+ // ------------------
148
+ function createFormatFromNumber(formattedVal) {
149
+ // full number syntax can have up to 7 sections, for example::
150
+ // Total: ($10,420.55 USD) Expensed
151
+ const [
152
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
153
+ _, prefix, openBraquet, symbolPrefix, number, symbolSuffix, closingBraquet, suffix] = (formattedVal === null || formattedVal === void 0 ? void 0 : formattedVal.match(/^([^\d\(\-]*)([\(]?)([^\d]*)([\-]?[\w]]?[\d\s]*[.,\d]*[\d]*[^)\s\%]?)([^\d.,)]*)([\)]?)([^\d]*)$/i)) || [];
154
+ // we use 1 so that they won't be removed when rounding numbers, however Excel uses 0 and # symbol
155
+ // replace 1's by 0's (required numbers) and replace 2's by "#" (optional numbers)
156
+ const replacedNumber = (number || '').replace(/1/g, '0').replace(/[2]/g, '#');
157
+ const format = [
158
+ escapeQuotes(prefix !== null && prefix !== void 0 ? prefix : ''),
159
+ openBraquet !== null && openBraquet !== void 0 ? openBraquet : '',
160
+ escapeQuotes(symbolPrefix !== null && symbolPrefix !== void 0 ? symbolPrefix : ''),
161
+ replacedNumber,
162
+ escapeQuotes(symbolSuffix !== null && symbolSuffix !== void 0 ? symbolSuffix : ''),
163
+ closingBraquet !== null && closingBraquet !== void 0 ? closingBraquet : '',
164
+ escapeQuotes(suffix !== null && suffix !== void 0 ? suffix : '')
165
+ ].join('');
166
+ return format.replace(',', '\,');
167
+ }
168
+ function createExcelFormatFromGridFormatter(columnDef, grid, formatterType, groupType = '') {
169
+ let outputFormat = '';
170
+ let positiveFormat = '';
171
+ let negativeFormat = '';
172
+ const { minDecimal, maxDecimal, thousandSeparator } = getNumericFormatterOptions(columnDef, grid, formatterType);
173
+ const leftInteger = thousandSeparator ? '2220' : '0';
174
+ const testingNo = parseFloat(`${leftInteger}.${excelTestingDecimalNumberPadding(minDecimal, maxDecimal)}`);
175
+ if (formatterType === 'group' && columnDef.groupTotalsFormatter) {
176
+ positiveFormat = sanitizeHtmlToText(columnDef.groupTotalsFormatter({ [groupType]: { [columnDef.field]: testingNo } }, columnDef, grid));
177
+ negativeFormat = sanitizeHtmlToText(columnDef.groupTotalsFormatter({ [groupType]: { [columnDef.field]: -testingNo } }, columnDef, grid));
178
+ }
179
+ else if (columnDef.formatter) {
180
+ positiveFormat = sanitizeHtmlToText(columnDef.formatter(0, 0, testingNo, columnDef, {}, grid));
181
+ negativeFormat = sanitizeHtmlToText(columnDef.formatter(0, 0, -testingNo, columnDef, {}, grid));
182
+ }
183
+ if (positiveFormat && negativeFormat) {
184
+ outputFormat = createFormatFromNumber(positiveFormat) + ';' + createFormatFromNumber(negativeFormat);
185
+ }
186
+ return outputFormat;
187
+ }
188
+ function escapeQuotes(val) {
189
+ return val ? `"${val}"` : val;
190
+ }
191
+ /** Get number format for a number cell, for example { minDecimal: 2, maxDecimal: 5 } will return "00###" */
192
+ function excelTestingDecimalNumberPadding(minDecimal, maxDecimal) {
193
+ return textPadding('1', minDecimal) + textPadding('2', maxDecimal - minDecimal);
194
+ }
195
+ function textPadding(numberStr, count) {
196
+ let output = '';
197
+ for (let i = 0; i < count; i++) {
198
+ output += numberStr;
199
+ }
200
+ return output;
201
+ }
202
+ //# sourceMappingURL=excelUtils.js.map