Angular之怎样前台完成生成csv格式
原创直接在代码上
下面是我 log.component.ts中的代码
export class LogComponent implements OnInit {
userId = ; // 用户ID
userName = ; // 用户名
description = ; // 用户描述
datetime = ; // 登陆时间
csvSeparator = ,;
logs: Logs[];
constructor(private getAllLogsService: GetAllLogsService, private router: Router) { }
ngOnInit(): void {
const params = {
userId: this.userId,
userName: this.userName,
description: this.description,
datetime: this.datetime
};
this.getAllLogsService.getAllLogs(params).subscribe((logs: Logs[]) => {
this.logs = logs;
});
}
exportCSV(value = this.logs, columns = [userId, userName, description, datetime], exportFilename = 用户LOG表) {
const data = value;
let csv = ufeff;
for (let i = 0; i < columns.length; i++) {
const column = columns[i];
// columns.header ???
// columns[i] | column ???
// 如何自动提取列名
csv += " + (columns[i]) + ";
if (i < (columns.length - 1)) {
csv += this.csvSeparator;
}
}
// body
data.forEach((record) => {
csv +=
; // tslint:disable-next-line: variable-name for (let i_1 = 0; i_1 < columns.length; i_1++) { const column = columns[i_1]; csv += " + this.resolveFieldData(record, column) + "; if (i_1 < (columns.length - 1)) { csv += this.csvSeparator; } } }); const blob = new Blob([csv], { type: text/csv;charset=utf-8; }); if (window.navigator.msSaveOrOpenBlob) { navigator.msSaveOrOpenBlob(blob, exportFilename + .csv); } else { const link = document.createElement(a); link.style.display = none; document.body.appendChild(link); if (link.download !== undefined) { link.setAttribute(href, URL.createObjectURL(blob)); link.setAttribute(download, exportFilename + .csv); link.click(); } else { csv = data:text/csv;charset=utf-8, + csv; window.open(encodeURI(csv)); } document.body.removeChild(link); } } resolveFieldData(data, field) { if (data && field) { if (field.indexOf(.) === -1) { return data[field]; } else { const fields = field.split(.); let value = data; for (let i = 0, len = fields.length; i < len; ++i) { if (value === null) { return null; } value = value[fields[i]]; } return value; } } else { return null; } } }
下面是html中引用的代码
事实上,我也向很多人学习过。让我们把链接放在下面作为参考。
https://blog.csdn.net/xcx0215/article/details/78799403?utm\_medium=distribute.pc\_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.nonecase&depth\_1-utm\_source=distribute.pc\_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.nonecase
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除