[英]How to convert Javascript array into CSV file and download it from Chrome Extension?
Hello i am new to Chrome Extension and developing it in angularjs and i am trying to convert array into csv file and download it from Chrome Extension.您好,我是 Chrome 扩展程序的新手,并在 angularjs 中开发它,我正在尝试将数组转换为 csv 文件并从 Chrome 扩展程序下载它。
i have tried by我试过
var csvData = new Blob($scope.result, { type: 'text/csv' });
var csvUrl = URL.createObjectURL(csvData);
chrome.downloads.download({ url: csvUrl });
then another method i got from SO然后我从 SO 得到的另一种方法
var finalVal = '';
for (var i = 0; i < $scope.result.length; i++) {
var value = $scope.result[i];
for (var j = 0; j < value.length; j++) {
var innerValue = value[j]===null?'':value[j].toString();
var result = innerValue.replace(/"/g, '""');
if (result.search(/("|,|\n)/g) >= 0)
result = '"' + result + '"';
if (j > 0)
finalVal += ',';
finalVal += result;
}
finalVal += '\n';
}
console.log(finalVal);
var download = document.getElementById('download');
download.setAttribute('href', 'data:text/csv;charset=utf-8,' + encodeURIComponent(finalVal));
download.setAttribute('download', 'test.csv');
But both of them didnt work properly, i have following permission in manifest.json但是它们都不能正常工作,我在 manifest.json 中有以下权限
permissions": [
"http://*/*",
"https://*/*",
"unlimitedStorage",
"contextMenus",
"cookies",
"tabs",
"notifications",
"activeTab",
"downloads",
"background"
]
while the first method download a file but it contains虽然第一种方法下载一个文件,但它包含
[object Object][object Object][object Object]
I need to export my $scope.result into a csv file我需要将我的$scope.result导出到一个 csv 文件中
try this试试这个
var csvData = new Blob(JSON.stringify($scope.result), { type: 'text/csv' });
var csvUrl = URL.createObjectURL(csvData);
chrome.downloads.download({ url: csvUrl });
You can achieve that using Blob object and Chrome downloads API.您可以使用 Blob 对象和 Chrome 下载 API 来实现这一点。 Here is an example
这是一个例子
let data = [["x", "y"], [10, 20]];
let csvContent = data.map(row => row.join(",")).join("\n");
let csvBlob = new Blob([csvContent], { type: 'text/csv' });
let csvUrl = URL.createObjectURL(csvBlob);
chrome.downloads.download({ url: csvUrl });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.