Скрыть / удалить столбец при экспорте таблицы html с XLSX (таблица на лист) - PullRequest
0 голосов
/ 15 января 2020

Я хочу иметь возможность экспортировать в формате Excel файлы моих таблиц DOM.

Моя функция (Typescript 3.5 / Angular 8)

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.xls');
}

Моя таблица:

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

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

   <!-- Other columns -->

   <ng-container matColumnDef="expandedDetail">
      ...
   </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>

expandedDetail - это столбец, который я не хочу, чтобы он был в файле, записанном функцией ExportTOExcel. Этот столбец является последним столбцом моей таблицы.

Я пытался

ws['!cols'] = [];
ws['!cols'][0] = { hidden: true };

, но не работает.

Ответы [ 2 ]

1 голос
/ 30 января 2020

Удалить столбец

const ws: XLSX.WorkSheet = XLSX.utils.table_to_sheet(this.table.nativeElement);
delete (ws['O1'])
/* O1 is your Column in Excel*/

const wb: XLSX.WorkBook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
/* save file */
XLSX.writeFile(wb, 'SheetTest.xlsx');
0 голосов
/ 30 января 2020

Скрыть столбец

const ws: 
 XLSX.WorkSheet=XLSX.utils.table_to_sheet(document.getElementById('serversTable'));

ws['!cols'] = [];
ws['!cols'][12] = { hidden: true };
/* here 12 is your column number (n-1) */
const wb: XLSX.WorkBook = XLSX.utils.book_new();

XLSX.utils.book_append_sheet(wb, ws, 'Servers');
/* save to file */
XLSX.writeFile(wb, 'myproject.xls');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...