100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Angular 导出CSV表

Angular 导出CSV表

时间:2020-03-02 07:13:12

相关推荐

Angular 导出CSV表

emmmmmmmmmmmmmmm 代码如下 简单的CSV能直接拿来用

import {Injectable} from '@angular/core';@Injectable()export class ExportService {csvSeparator = ',';constructor() {}/*** @param value //[{'姓名':'小明','成绩','100'}]* @param columns //['姓名','成绩']* @param exportFilename // '成绩统计表'*/exportCSV(value, columns, exportFilename) {const data = value;let csv = '\ufeff';// headersfor (let i = 0; i < columns.length; i++) {const column = columns[i];csv += '"' + (column.header || column) + '"';if (i < (columns.length - 1)) {csv += this.csvSeparator;}}// bodydata.forEach((record) => {csv += '\n';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;}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。