问题描述
我正在使用 JavaScript 上传和下载 csv 文件代码。上传按钮应该从您的计算机搜索文件并加载到 HTML 网页中。这个工程文件。此外,在这种情况下,csv 应该是可编辑的,这也很有效。但是,我需要在输入一些细节后下载相同的 csv 文件。这里的问题是下载按钮不起作用。下面是我自己开发的代码,请指教。感谢您的支持。
var fileUpload = document.getElementById("fileUpload1");
var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.csv|.txt)$/;
if (regex.test(fileUpload.value.toLowerCase())) {
if (typeof (FileReader) != "undefined") {
var reader = new FileReader();
reader.onload = function (e) {
var table = document.createElement("table");
var rows = e.target.result.split("\n");
for (var i = 0; i < rows.length; i++) {
var cells = rows[i].split(",");
if (cells.length > 1) {
var row = table.insertRow(-1);
for (var j = 0; j < cells.length; j++) {
var cell = row.insertCell(-1);
cell.innerHTML = cells[j];
}
}
}
var dvCSV1= document.getElementById("dvCSV1");
dvCSV1.innerHTML = "";
dvCSV1.appendChild(table);
}
reader.readAsText(fileUpload.files[0]);
} else {
alert("This browser does not support HTML5.");
}
} else {
alert("Please upload a valid CSV file.");
}
}
</script>
<script>
function Download() {
var csv = document.getElementById("fileUpload1");
//var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.csv|.txt)$/;
data.forEach(function(row) {
var row1 = [];
row.forEach(function(item) { // handling commna in data values
if(item.indexOf(',') == -1) { // not having comma
row1.push(item);
} else {
item = "\"" + item + "\"";
row1.push(item);
}
});
console.log("row1:" + row1)
csv += row1.join(',');
csv += "\n";
});
if (navigator.msSaveBlob) { //IE
var csvURL = null;
var csvData = new Blob([csv],{type: 'text/csv;charset=utf-8;'});
csvURL = navigator.msSaveBlob(csvData,'download-reports.csv');
} else { // Firefox,Chrome
console.log(csv);
//var hiddenElement = document.createElement('a');
var hiddenElement = document.getElementById('fileUpload1'); //For Firefox
hiddenElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csv);
hiddenElement.target = '_blank';
hiddenElement.download = 'download-reports.csv';
hiddenElement.click();
}
}
</script>
<input type="file" id="fileUpload1" />
<input type="button" id="upload" value="Upload" onclick="Upload()" />
<input type="button" id="Download" value="Download CSV" onclick="Download()" > ```
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)