From 5a2d261a21aaeaeb6a6a5cbc12e0d254890d8a0c Mon Sep 17 00:00:00 2001 From: Eleasah Loresco Date: Wed, 11 Nov 2020 10:56:51 +0700 Subject: [PATCH] Fix for issue below; When generated html by api has table within rows, row numbers also appear inside. --- libs/viewer/src/lib/excel-page.service.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libs/viewer/src/lib/excel-page.service.ts b/libs/viewer/src/lib/excel-page.service.ts index 5f4632cf7..a0c94ae7e 100644 --- a/libs/viewer/src/lib/excel-page.service.ts +++ b/libs/viewer/src/lib/excel-page.service.ts @@ -16,7 +16,7 @@ export class ExcelPageService { cellsFromFirstRow.forEach(elm => { numCellsInFirstRow += elm.attributes['colspan'] ? parseInt(elm.attributes['colspan'].value, 10) : 1; }); - + const newTable = this.createHeader(numCellsInFirstRow, table); doc.querySelector('table').replaceWith(newTable); @@ -34,16 +34,20 @@ export class ExcelPageService { th.innerText = this.colName(i); header.querySelector("tr").append(th); } - + const colgroup = table.querySelector('colgroup'); const col = document.createElement('col'); col.width = '80px'; colgroup.prepend(col); - + table.prepend(header); let cnt = 0; - table.querySelectorAll('tr').forEach(row => { + const nodes = table.querySelectorAll('tr'); + const filteredNodes = [].slice.call(nodes).filter(n => + n.parentNode.closest('tr') === table.closest('tr') + ); + filteredNodes.forEach(row => { const div = document.createElement('div'); if (cnt !== 0) { const td = document.createElement('td');