1

我正在尝试将数据从primeng turbo 表导出到csv。问题是下面代码中的“行”是一个对象数组,我根据相应的键使用 ngIf 在表格主体中显示,因此显示不是问题,但是当我尝试导出到 csv 时,我得到了对象在单元格而不是对象属性中。有没有办法使用 datatable.exportCSV() 获取对象属性

这是我正在做的事情

 <p-table #dt [columns]="cols" [value]="rows" selectionMode="multiple" [(selection)]="selectedResults">

<ng-template pTemplate="caption">
Test Set - {{testsetid}}
<div class="ui-helper-clearfix">
  <button type="button" pButton icon="fa fa-file-o" iconPos="left" label="All Data" (click)="dt.exportCSV()" style="float:left"></button>
  <button type="button" pButton icon="fa fa-file" iconPos="left" label="Selection Only" (click)="dt.exportCSV({selectionOnly:true})" style="float:right"></button>
</div>

 </ng-template>
 <ng-template pTemplate="header" let-columns>
<tr>
  <th *ngFor="let col of cols">
    {{col.header}}
  </th>
  </tr>
 </ng-template>
 <ng-template pTemplate="body" let-row let-columns="cols">
   <tr [pSelectableRow] = "row">
  <td *ngFor="let col of cols" [ngStyle]="{'background-color': getColor(row[col.field]['status'])}">
    <span *ngIf="col.field == 'script_name'" >{{row[col.field]}}</span>
    <span *ngIf="col.field != 'script_name'" >
      <a [routerLink]="['/localrunreport' , row[col.field]['sessionId']]"> {{row[col.field]['status']}}</a>
    </span>
  </td>
</tr>
</ng-template>



</p-table>

这是我在 csv 文件中得到的: exported csv

这是因为对象数组的类型为:

[{'script_name': value, 'device_name':{'status':value,'sessionId':value}}}

所以你可以看到问题都是因为 device_name 键有一个对象的值。有没有办法我可以在 csv 文件中拥有 obj 属性。

4

1 回答 1

0

尝试使您的 HTML 看起来像

<tr>
  <td *ngFor="let col of cols">
    {{row[col.field]}}
  </td>
</tr>

通过在 TS 代码中传输 HTML ngIf条件。

然后您应该能够直接导出值。

于 2018-06-25T13:48:48.497 回答