From db0304f8295d5cb2c82e2972e2b8b7e0c3f0417c Mon Sep 17 00:00:00 2001 From: "mathias.chouet" <mathias.chouet@irstea.fr> Date: Thu, 23 Jan 2020 10:10:57 +0100 Subject: [PATCH] Fix #360 - remove "help" from cells in exported spreadsheets --- src/app/app.component.ts | 30 ++++++++++++++++++- .../fixed-results.component.ts | 2 +- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/app/app.component.ts b/src/app/app.component.ts index de6a3963e..98789276c 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -158,8 +158,36 @@ export class AppComponent implements OnInit, OnDestroy, Observer { }); // defaults to image/png } - public static exportAsSpreadsheet(table: ElementRef) { + /** + * Exports a results data table to XLSX format, and removes "help" mentions + * from the parameters names columns if needed + * @param table results data table + * @param namesInFirstCol if true, will look for parameters names in 1st column + * (for fixed results), else in 1st row (variable results, by default) + */ + public static exportAsSpreadsheet(table: ElementRef, namesInFirstCol: boolean = false) { const ws: XLSX.WorkSheet = XLSX.utils.table_to_sheet(table); + + let regExCellKey; + if (namesInFirstCol) { + regExCellKey = new RegExp("^A\\d$"); + } else { + regExCellKey = new RegExp("^\\w1$"); + } + // browse all cells + for (const key in ws) { + // look for 1st row or 1st col + if (regExCellKey.test(key) === true) { + const regExCellName = new RegExp("help$"); + const v: string = ws[key].v; + // remove "help" from cell name's ending + if (regExCellName.test(v) === true) { + const newV = v.substr(0, v.length - 4); + ws[key].v = newV; + } + } + } + const wb: XLSX.WorkBook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(wb, ws, "default"); const wopts: any = { bookType: "xlsx", bookSST: false, type: "array" }; diff --git a/src/app/components/fixedvar-results/fixed-results.component.ts b/src/app/components/fixedvar-results/fixed-results.component.ts index 9681fa15d..801044b6c 100644 --- a/src/app/components/fixedvar-results/fixed-results.component.ts +++ b/src/app/components/fixedvar-results/fixed-results.component.ts @@ -272,6 +272,6 @@ export class FixedResultsComponent extends ResultsComponent { } public exportAsSpreadsheet() { - AppComponent.exportAsSpreadsheet(this.table.nativeElement); + AppComponent.exportAsSpreadsheet(this.table.nativeElement, true); } } -- GitLab