cof*_*tor 16 javascript export-to-csv
我正在搞乱一些javascript来下载一些csv文本:
<script>
var data = '"Column One","Column Two","Column Three"';
window.location.href = 'data:text/csv;charset=UTF-8,' + encodeURIComponent(data);
</script>
Run Code Online (Sandbox Code Playgroud)
到目前为止这是有效的,但是当浏览器提示我保存文件时,没有文件名,也没有扩展名.
我怎样才能预先确定文件的名称及其扩展名window.location.href?
And*_*rew 18
function downloadFile(fileName, urlData) {
var aLink = document.createElement('a');
var evt = document.createEvent("HTMLEvents");
evt.initEvent("click");
aLink.download = fileName;
aLink.href = urlData;
aLink.dispatchEvent(evt);
}
var data = '"Column One","Column Two","Column Three"';
downloadFile('2.csv', 'data:text/csv;charset=UTF-8,' + encodeURIComponent(data));
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/rooseve/7bUG8/
小智 13
在我的例子中,事实证明Excel忽略了charset = UTF-8部分.我在这篇文章中找到了一个解决方案,强制Excel考虑UTF-8.所以这最后一行对我有用:
downloadFile('2.csv', 'data:text/csv;charset=UTF-8,' + '\uFEFF' + encodeURIComponent(data));
Run Code Online (Sandbox Code Playgroud)
小智 7
更新了安德鲁的答案,以避免使用不推荐使用的功能。
来源:https : //developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events#The_old-fashioned_way
//Triggers a download of the given file
//@see /sf/ask/1482395491/
//@see https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events#The_old-fashioned_way
//
//@param fileName {string} - Name of the file to download include file extension
//@param urlData {string} - Encoded URI of the document data
function downloadFile(fileName, urlData) {
var aLink = document.createElement('a');
aLink.download = fileName;
aLink.href = urlData;
var event = new MouseEvent('click');
aLink.dispatchEvent(event);
}
var data = '"Column One","Column Two","Column Three"';
downloadFile('2.csv', 'data:text/csv;charset=UTF-8,' + encodeURIComponent(data));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23962 次 |
| 最近记录: |