【发布时间】:2015-06-12 15:50:20
【问题描述】:
我的 html 页面中有这个:
<input type="file" id="fileInput" />
这在我的 javascript 页面中:
window.onload = function () {
var fileInput = document.getElementById('fileInput');
var fileDisplayArea = document.getElementById('fileDisplayArea');
fileInput.addEventListener('change', function (e) {
// code that handles reading the text file
var file = fileInput.files[0];
var textType = /text.*/;
// checks if the file is a text file
if (file.type.match(textType)) {
var reader = new FileReader();
reader.onload = function (e) {
fileDisplayArea.innerText = reader.result;
}
reader.readAsText(file);
} else {
fileDisplayArea.innerText = "File not supported!";
}
});
}
我希望能够将 Filereader 转换为数组,这样我就可以执行以下操作:
document.getElementById("today").innerHTML = today[0];
这可能吗?我也不认为这是使用 filereader 读取 csv 文件的方式。
更新:我已经弄清楚了如何获取 csv 文件并将其转换为数组,方法如下:
$(document).ready(function () {
$.ajax({
type: "GET",
url: "data.csv",
dataType: "text",
success: function (data) { processData(data); }
});
function processData(csv) {
var temp = new Array();
temp = csv.split(",");
document.getElementById("today").innerHTML = temp[0];
}
});
现在我想知道是否有办法使用 FileReader(),这样我就可以从 html 页面中选择文件,而不是使用 url: "data.csv",这样我就可以选择多个文件。
【问题讨论】:
-
您必须先解析 csv。照原样,您只是在吞食整个文件并将其填充到文本节点中。这意味着就 JS/DOM 而言,它只是一个巨大的文本字符串。
标签: javascript html csv filereader