Javascript 使用HTML5本地写入CSV文件

Javascript 使用HTML5本地写入CSV文件,javascript,html,csv,Javascript,Html,Csv,我想知道HTML5是否允许用户在文件系统中保存/写入本地文件。我问这个问题,因为我知道HTML5现在可以从客户端导出数据,并将其下载为CSV文件 如果不是HTML5,那么在客户端脚本中本地覆盖内容或创建CSV(或任何其他类型的文件)的最佳方法是什么?函数: function exportData() { var data = ''; for (var i=1;i<=2;i++) { var sep = ''; for (var j=1;j&l

我想知道HTML5是否允许用户在文件系统中保存/写入本地文件。我问这个问题,因为我知道HTML5现在可以从客户端导出数据,并将其下载为CSV文件


如果不是HTML5,那么在客户端脚本中本地覆盖内容或创建CSV(或任何其他类型的文件)的最佳方法是什么?

函数:

function exportData() {
    var data = '';
    for (var i=1;i<=2;i++) {
        var sep = '';
        for (var j=1;j<=4;j++) {
            data +=  sep + document.getElementById(i + '_' + j).value;
            sep = ',';
        }
        data += '\r\n';
    }
    var exportLink = document.createElement('a');
    exportLink.setAttribute('href', 'data:text/csv;base64,' + window.btoa(data));
    exportLink.appendChild(document.createTextNode('test.csv'));
    document.getElementById('results').appendChild(exportLink);
}
<input type="number" id="1_1" value="2">,
<input type="number" id="1_2" value="1">,
<input type="number" id="1_3" value="4">,
<input type="number" id="1_4" value="3">
<br>
<input type="number" id="2_1" value="1">,
<input type="number" id="2_2" value="2">,
<input type="number" id="2_3" value="3">,
<input type="number" id="2_4" value="4">
<br>
<button onclick="exportData()">Export as CSV</button>
<div id="results"></div>
函数exportData(){
var数据=“”;

对于(var i=1;i函数:

function exportData() {
    var data = '';
    for (var i=1;i<=2;i++) {
        var sep = '';
        for (var j=1;j<=4;j++) {
            data +=  sep + document.getElementById(i + '_' + j).value;
            sep = ',';
        }
        data += '\r\n';
    }
    var exportLink = document.createElement('a');
    exportLink.setAttribute('href', 'data:text/csv;base64,' + window.btoa(data));
    exportLink.appendChild(document.createTextNode('test.csv'));
    document.getElementById('results').appendChild(exportLink);
}
<input type="number" id="1_1" value="2">,
<input type="number" id="1_2" value="1">,
<input type="number" id="1_3" value="4">,
<input type="number" id="1_4" value="3">
<br>
<input type="number" id="2_1" value="1">,
<input type="number" id="2_2" value="2">,
<input type="number" id="2_3" value="3">,
<input type="number" id="2_4" value="4">
<br>
<button onclick="exportData()">Export as CSV</button>
<div id="results"></div>
函数exportData(){
var数据=“”;

对于(var i=1;i我知道这是一个老问题。 测试ummahusla的答案它确实有效,但下载的文件有一个小问题,在我的chrome浏览器中,它会下载一个没有名字的文件

经过一些测试,这里是作为csv文件下载的工作代码

    data= 'data:application/csv;charset=utf-8,' + encodeURIComponent(data);
    var exportLink = document.createElement('a');
    exportLink.setAttribute('href', data);
    exportLink.setAttribute('download','test.csv');
    exportLink.setAttribute('target','_blank');
    exportLink.appendChild(document.createTextNode('test.csv'));

    document.getElementById('results').appendChild(exportLink);

我知道这是个老问题。 测试ummahusla的答案它确实有效,但下载的文件有一个小问题,在我的chrome浏览器中,它会下载一个没有名字的文件

经过一些测试,这里是作为csv文件下载的工作代码

    data= 'data:application/csv;charset=utf-8,' + encodeURIComponent(data);
    var exportLink = document.createElement('a');
    exportLink.setAttribute('href', data);
    exportLink.setAttribute('download','test.csv');
    exportLink.setAttribute('target','_blank');
    exportLink.appendChild(document.createTextNode('test.csv'));

    document.getElementById('results').appendChild(exportLink);

您可以通过javascript(客户端)创建文件。以下是CSV创建示例:您可以通过javascript(客户端)创建文件。以下是CSV创建示例: