我需要从数据库中获取数据到csv文件。我能够获取所有数据,但无法获取对象格式的数据,它在csv文件中显示为[object object]。
TS文件:
getData() {
let source = this.resultList;
let destination = [];
for (let i = 0; i < source.length; i++) {
let entry = new Entry();
entry.id = source[i]['id'];
entry.participantId = source[i]['participantId'];
entry.completedOn = moment(source[i]['completedOn']).format('DD/MM/YYYY');
if (typeof source[i]['satisfaction'] == 'string') {
entry['satisfaction'] = source[i]['satisfaction']
} else {
for (var property in source[i]['satisfaction']) {
if (source[i]['satisfaction'].hasOwnProperty(property)) {
entry[property] = source[i]['satisfaction'][property]
}
}
}
destination.push(entry);
}
return destination;
}
}
我无法将“prodandService”中的对象提取到csv文件,它显示为[object object]而不是显示项目。
JSON数据:
{ “满意”:{ “prodandService”:[{ “索引”: “Orbiz”},{ “索引”: “qwerq”},{ “索引”: “ASFD”},{ “索引”:” test“},{”index“:”test123“},{”index“:”TestWD“},{”index“:”IOS app“},{”index“:”Lipstick“},{”index“: “Foundation”},{“index”:“lipstick”},{“index”:“Website”},{“index”:“App IOS”},{“index”:“Shampoo Vanilla”},{“index “:”Shampoo Strawberry“},{”index“:”car“},”Lipstick“],”price“:”medium“,”customer“:”yes“,”recomondation“:”4“,”sales“ : “电话”], “phoneVist”: “3”, “重要性”: “质量”], “频”: “季”, “满意”: “3”}, “completedOn”:“2017-08 -28T09:39:54.676Z”, “标识”:10 “participantId”:217}
请帮助。
答案 0 :(得分:0)
您应该使用库导出到CSV文件,这对我来说很有用:
我一直在使用外部库来从Angular4应用程序导出文档:https://github.com/eligrey/FileSaver.js/
以下是我用于提取数据的示例代码。我将此方法绑定到按钮以触发事件:
TypeScript组件:(已编辑)
// Notice the parameters from the service call that give me back my filtered datas
exportDatas(documentType: string) {
// I believe you store your service data you want to export in this.resultList
let source = this.resultList;
const blob = new Blob([source.blob()]);
const objectUrl = URL.createObjectURL(blob);
FileSaver.saveAs(blob, 'Export.' + documentType);
}
模板方:(已编辑)
<div>
<button (click)="exportDatas('csv')" type="button">CSV</button>
<button (click)="exportDatas('pdf')" type="button">PDF</button>
</div>
效果很好,代码更容易维护。
编辑:
使用NPM安装:
npm install file-saver --save
npm install @types/file-saver --save-dev
(如果您需要,可以使用类型,我没有使用它们)并在您的组件中导入(我正在使用Angular-CLI):
import * as FileSaver from 'file-saver';
import { FileSaver } from 'file-saver';