Javascript “我怎么能有”的意思;导出为CSV“;按钮在铬扩展?
我创建了一个Chrome扩展,它扫描页面,并在弹出窗口中创建当前页面的h1-h6标签列表。这是主StackOverflow页面的列表外观:Javascript “我怎么能有”的意思;导出为CSV“;按钮在铬扩展?,javascript,csv,google-chrome-extension,Javascript,Csv,Google Chrome Extension,我创建了一个Chrome扩展,它扫描页面,并在弹出窗口中创建当前页面的h1-h6标签列表。这是主StackOverflow页面的列表外观: h1 | All Questions h3 | XmlElement has a list as attribute but its items aren't separated by comma h3 | Eclipse, Easily remove/fix all @Override due to Java version change
h1 | All Questions
h3 | XmlElement has a list as attribute but its items aren't separated by comma
h3 | Eclipse, Easily remove/fix all @Override due to Java version change
...
我想有一个“导出”按钮,这将使我能够保存在CSV格式的报告。是否可能?您可以使用创建存储CSV内容的URI。然后可以创建一个元素,并将其设置为所需的文件名
如果您的CSV非常大,您应该使用和而不是数据URI方案来创建链接href
以下是使用数据URI方案的示例:
var link = document.createElement("a");
link.textContent = "Save as CSV";
link.download = "file.csv";
link.href = "data:text/csv,h1;All Questions\n"
document.body.appendChild(link);
当用户单击链接时,“file.csv”将自动保存在默认下载文件夹中。基于@check\u ca answer,我编写了以下代码以返回阵列数据的csv链接元素:
function getCSVLinkElement(arr){
var link = document.createElement("a");
link.textContent = "Save as CSV";
link.download = "file.csv";
var csv = arr.map(function(v){return v.join(',')}).join('\n');
link.href = encodeURI("data:text/csv,"+csv);
return link;
}
var el = getCSVLinkElement([['num','sq'],[2,4],[3,9]]);
document.body.appendChild(el);
您可以找到Blob和createObjectURL的好例子。