How do I create and download a csv file using Javascript?

☆樱花仙子☆ 提交于 2019-12-10 10:23:57

问题


I have this code in a button:

var csvContent = "data:text/csv;charset=utf-8,";
csvContent += myCSVcontent;

var encodedUri = encodeURI(csvContent);
window.open(encodedUri);

This works perfectly in Chrome, Safari, and Firefox.
- But not IE8 - I need Internet Explorer 8 compatibility.

When I click the button that calls the code above it downloads the .csv file to my computer.
When I click the button in IE8 though, it opens a new IE8 window with all the csv contents in the address bar and does not download (or ask to download) anything.

Unfortunately, I have to have IE8 compatibility. How can I make this work?

Edit: I must avoid any additional calls to the server. Everything needs to happen client side. This is currently working in all browsers except IE8 (and possibly IE9).

Edit2: When I change the last line to "document.location.href= encodedUri;" it will still work on all other browsers but in IE8 when I click the button I get an error window that says "The data area passed to a system call is too small." Any idea what that is telling me?


回答1:


"data:text/csv;" is HTML5 so it will not work for IE8, i'm able to solve this using ActivexObject, but it's writing the file to user's desktop and no popup

var csv = new ActiveXObject("scripting.FileSystemObject");
var fLoc = csv.CreateTextFile(fileName);
fLoc.WriteLine(csvData);
fLoc.close();


来源:https://stackoverflow.com/questions/20843219/how-do-i-create-and-download-a-csv-file-using-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!