[英]How to create and download a CSVfile in AngularJS using FileSaver.js
我正在尝试创建一个csv文件,并使用FileSaver.js下载它,但是在执行过程中遇到了问题。
到目前为止,这里是AngularJS控制器的代码:
$scope.Export = function () {
var blob = new Blob([$scope.Data], {
type: "text/csv;charset=utf-8"
});
saveAs(blob, "users.csv");
};
$ scope.Data具有以下形式:
但是我最终与
[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象]
我不想通过遍历数组来构造csv,或者创建html表然后调用其innerHTML函数。 那么,我该怎么做?
看一下这个例子 。
我试图通过编写insertCommaForCSV
来概括它,它可以为CSV插入逗号。 另外,您可以传递一个可配置的标头对象。主要逻辑位于:
function initiateDownload(data, fileName) {
const csvStr = insertCommaForCSV(data);
const blob = new Blob([csvStr], { type: 'text/csv;charset=utf-8;' });
if (navigator.msSaveBlob) {
// IE 10+
navigator.msSaveBlob(blob, fileName + '.csv');
} else {
const link = document.createElement('a');
if (link.download !== undefined) {
// feature detection
// Browsers that support HTML5 download attribute
const url = URL.createObjectURL(blob);
link.setAttribute('href', url);
link.setAttribute('download', fileName + '.csv');
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
}
}
确保为此创建一个指令,以便它也可以在其他地方重用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.