使用 Javascript/AJAX 显示 CSV 中的一行或一个值
Displaying a line or a value from a CSV using Javascript/AJAX
CSV 文件如下所示:
STATION,DATE,HLY-WIND-AVGSPD,HLY-WIND-VCTDIR
USW00013904,01-01T01:00:00,5.6,350
USW00013904,01-01T02:00:00,5.4,346
USW00013904,01-01T03:00:00,5.5,342
USW00013904,01-01T04:00:00,5.5,349
USW00013904,01-01T05:00:00,5.5,348
我还不是很熟悉Javascript。我希望下面的 window.alert 显示 CSV 中的值。该脚本会拉取 CSV 文件并在文本区域显示它。目前,警报将显示字母 "S"。但我希望它显示名称 "STATION"。我还想知道如何显示其他行的值,因为将 windValue.value[0,1] 放在警报中会显示 "USW00013904".
我可以使用逗号分隔符并使用任何基本 javascript 命令根据它们的位置提取值吗?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>javascript-only file reading </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body onload="doLoad('')">
<textarea cols="50" rows="40" id='windValue'></textarea>
<script type='text/javascript'>
// https://www.webdeveloper.com/forum/d/242887-read-server-csv-file-into-javascript-array/6
function el(tid)
{
return document.getElementById(tid);
}
function IO(U, V) {//LA MOD String Version. A tiny ajax library by Dan Davis.
var X = !window.XMLHttpRequest ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest();
X.open(V ? 'PUT' : 'GET', U, false );
X.setRequestHeader('Content-Type', 'csv')
X.send(V ? V : '');
return X.responseText;
}
function doLoad(){
el("windValue").value = IO("data/austinairport.csv");
}
window.alert(windValue.value[0]);
</script>
</body>
</html>
我解决了这个问题。如果使用以下代码,您可以将输出作为数组进行搜索:
window.alert(windValue.value.split(/\s+/)[1].split(",")[3]);
上面的代码将 return 结果:"350" 作为字符串。
window.alert(parseInt(windValue.value.split(/\s+/)[1].split(",")[3]));
上面的代码将 return 结果:350 作为整数。
CSV 文件如下所示:
STATION,DATE,HLY-WIND-AVGSPD,HLY-WIND-VCTDIR
USW00013904,01-01T01:00:00,5.6,350
USW00013904,01-01T02:00:00,5.4,346
USW00013904,01-01T03:00:00,5.5,342
USW00013904,01-01T04:00:00,5.5,349
USW00013904,01-01T05:00:00,5.5,348
我还不是很熟悉Javascript。我希望下面的 window.alert 显示 CSV 中的值。该脚本会拉取 CSV 文件并在文本区域显示它。目前,警报将显示字母 "S"。但我希望它显示名称 "STATION"。我还想知道如何显示其他行的值,因为将 windValue.value[0,1] 放在警报中会显示 "USW00013904".
我可以使用逗号分隔符并使用任何基本 javascript 命令根据它们的位置提取值吗?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>javascript-only file reading </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body onload="doLoad('')">
<textarea cols="50" rows="40" id='windValue'></textarea>
<script type='text/javascript'>
// https://www.webdeveloper.com/forum/d/242887-read-server-csv-file-into-javascript-array/6
function el(tid)
{
return document.getElementById(tid);
}
function IO(U, V) {//LA MOD String Version. A tiny ajax library by Dan Davis.
var X = !window.XMLHttpRequest ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest();
X.open(V ? 'PUT' : 'GET', U, false );
X.setRequestHeader('Content-Type', 'csv')
X.send(V ? V : '');
return X.responseText;
}
function doLoad(){
el("windValue").value = IO("data/austinairport.csv");
}
window.alert(windValue.value[0]);
</script>
</body>
</html>
我解决了这个问题。如果使用以下代码,您可以将输出作为数组进行搜索:
window.alert(windValue.value.split(/\s+/)[1].split(",")[3]);
上面的代码将 return 结果:"350" 作为字符串。
window.alert(parseInt(windValue.value.split(/\s+/)[1].split(",")[3]));
上面的代码将 return 结果:350 作为整数。