Пример значения отсутствующей даты после экспорта в EXCEL

#primeng #xlsx #primeng-datatable

Вопрос:

У меня есть красивый результат таблицы с датами введите описание изображения здесь

Функция экспорта ссылается на официальный документ https://www.primefaces.org/primeng/showcase/#/table/export. К сожалению, в поле даты нет ни одного примера.

Ниже приведен мой шаблон

 <p-table [columns]="appResults.output.cols" [value]="appResults.output.data">

              <ng-template pTemplate="caption">
                <div class="p-d-flex">
                  <button type="button" pButton pRipple icon="pi pi-file-excel" (click)="exportExcel()"
                    class="p-button-success p-mr-2" pTooltip="XLS" tooltipPosition="bottom"></button>
                </div>
              </ng-template>

              <ng-template pTemplate="header" let-columns>
                <tr>
                  <th *ngFor="let col of columns">
                    {{col.header}}
                  </th>
                </tr>
              </ng-template>
              <ng-template pTemplate="body" let-rowData let-columns="columns">
                <tr>
                  <td *ngFor="let col of columns" [ngSwitch]="col.type">
                    <div *ngSwitchCase="'currency'" align="right">{{rowData[col.field].toFixed(2)}}
                    </div>
                    <div *ngSwitchCase="'number'" align="right">{{rowData[col.field]}}</div>
                    <div *ngSwitchCase="'string'">{{rowData[col.field]}}</div>
                    <div *ngSwitchCase="'boolean'">{{rowData[col.field]? "Y":"N"}}</div>
                    <div *ngSwitchCase="'date'">{{rowData[col.field].seconds * 1000|date:'MMM d, yyyy' }}</div>
                    <div *ngSwitchCase="'timestamp'">{{rowData[col.field].seconds * 1000|date:'MMM d, yyyy HH:mm:ss' }}
                    </div>
                    <div *ngSwitchCase="'checkbox'" align="center">{{rowData[col.field]? "Y":"N"}}</div>

                    <!-- note: geoPoints is currently not supported in export. Content will be BLANK in exported file, expected behaviour -->
                    <div *ngSwitchCase="'geopoints'" align="center">
                      <div *ngIf="rowData[col.field]">
                        <a href="https://www.google.com/maps/place/{{rowData[col.field].latitude}},{{rowData[col.field].longitude}}/@18"
                          target="_blank">location</a>
                      </div>
                    </div>
                    <div *ngSwitchCase="'link'">
                      <a href="{{rowData[col.field]}}" target="_blank">{{col.label}}</a>
                    </div>
                  </td>
                </tr>
              </ng-template>
            </p-table>
 

Извините за длинный фрагмент кода, и единственное внимание уделяется полю даты

  <div *ngSwitchCase="'date'">{{rowData[col.field].seconds * 1000|date:'MMM d, yyyy' }}</div>
 

Данные правильно отображаются на веб-странице. Но после загрузки в EXCEL поле даты просто ПУСТОЕ
введите описание изображения здесь

Ниже приведена логика экспорта

 exportExcel() {
    import("xlsx").then(xlsx => {
      const worksheet = xlsx.utils.json_to_sheet(this.appResults.output.data);
      const workbook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
      const excelBuffer: any = xlsx.write(workbook, { bookType: 'xlsx', type: 'array' });
      this.saveAsExcelFile(excelBuffer, "Results");
    });
  }