我需要我的代码才能从csv文件中获取数据并将其打印到屏幕上。目前它从txt文件中获取数据很好,但CSV只会返回“不支持的文件”。这是我的代码。
<html>
<div id="page-wrapper">
<div>
Select a text file:
<input type="file" id="fileInput">
</div>
<pre id="fileDisplayArea"><pre>
</div>
<button onClick="test()">Show Text</button>
<script>
function test (){
var file = fileInput.files[0];
var textType = /text.*/;
if (file.type.match(textType)) {
var reader = new FileReader();
reader.onload = function(e) {
var look = reader.result;
window.alert (look);
}
reader.readAsText(file);
} else {
fileDisplayArea.innerText = "File not supported!";
}
}
</script>
答案 0 :(得分:2)
type
对象的file
属性是操作系统提供的类型,具体取决于文件的扩展名。
在Windows上,filetype
个csv
个文件为application/vnd.ms-excel
,因此当您检查时:
file.type.match(/text.*/)
这是假的。
您可以使用更改代码来检查text.*
或application/vnd.ms-excel
中的任何一个:
var textType = /text.*/;
var csvType = 'application/vnd.ms-excel';
if (file.type.match(textType) || file.type == csvType) {
另一种选择是检查文件的扩展名:
if (file.name.endsWith('.csv')) {
...
}