Экспорт таблицы html, содержащей изображения, в формат xls с помощью XLSX sheetjs - PullRequest
0 голосов
/ 16 января 2020

Моя функция:

ExportTOExcel() {
    const ws: XLSX.WorkSheet=XLSX.utils.table_to_sheet(document.getElementById('serversTable'));
    const wb: XLSX.WorkBook = XLSX.utils.book_new();
    XLSX.utils.book_append_sheet(wb, ws, 'Servers');
    /* save to file */
    XLSX.writeFile(wb, 'myproject.xlsx');
  }

Моя таблица:

<table id="serversTable" mat-table [dataSource]="serverArray" multiTemplateDataRows>
   <ng-container matColumnDef="number">
      <th mat-header-cell *matHeaderCellDef>Qty</th>
      <td mat-cell ...>
         ...
      </td>
   </ng-container>

   <ng-container matColumnDef="name">
      <th mat-header-cell *matHeaderCellDef>name</th>
      <td mat-cell ...>
         ...
      </td>
   </ng-container>

   <!-- Other columns -->

   <ng-container matColumnDef="osType">
      <th mat-header-cell *matHeaderCellDef>OS</th>
      <td mat-cell *matCellDef="let  resourceGroup">
        <img src="..\..\assets\images\... alt="myimage">
      </td>
   </ng-container>

   <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
   <tr mat-row *matRowDef="let resourceGroup; columns: displayedColumns;" class="example- 
      element-row" [class.example-expanded-row]="expandedElement === resourceGroup 
      (click)="clickOnRowDisk(resourceGroup)">
   </tr>
   <tr mat-row *matRowDef="let row; columns: ['expandedDetail']" class="example-detail-row"></tr>
</table>

Когда я выполняю свою функцию, появляется столбец «OS», но его ячейки пусты, кажется, что XLSX не может прочитать тег <img> html сам. Есть ли решение для этого? Может быть, сказать ему, чтобы он взял alt свойство <img>? (если да, то как)

...