我在Excel电子表格中列出了机场代码,名称和位置,如下所示:
+-------+----------------------------------------+-------------------+
| Code | Airport Name | Location |
+-------+----------------------------------------+-------------------+
| AUA | Queen Beatrix International Airport | Oranjestad, Aruba|
+-------+----------------------------------------+-------------------+
我的Javascript传递了3个字符的字符串,应该是航空公司代码。当发生这种情况时,我需要在电子表格中找到代码并返回机场名称和位置。
我想的是:
var code = "AUA";
console.log(getAirportInfo(code));
function getAirportInfo(code) {
// get information from spreadsheet
//format info (no help needed there)
return airportInfo;
}
日志写出来的地方:
Oranjestad, Aruba (AUA): Queen Beatrix International Airport
从电子表格中获取所需数据的最简单方法是什么?
额外信息:
我确实在网上搜索,但我能找到的所有东西都比我想要的东西复杂得多,因此很难理解我在寻找什么。
感谢您帮助我指明正确的方向。
答案 0 :(得分:4)
我使用了纯文本文件(csv或tsv,两者都可以直接从Excel导出)
通过xmlhttprequest将其加载到字符串var中。通常,浏览器缓存将不再需要在每次加载页面时下载文件。
然后让Regex根据需要解析这些值。
所有不使用任何第三方......如果您愿意,我可以挖出代码。
实施例: 您需要将data.txt文件放在与此页面相同的Web文件夹中,或者更新路径...
<html>
<head>
<script>
var fileName = "data.txt";
var data = "";
req = new XMLHttpRequest();
req.open("GET", fileName, false);
req.addEventListener("readystatechange", function (e) {
data = req.responseText ;
});
req.send();
function getInfoByCode(c){
if( data == "" ){
return 'DataNotReady' ;
} else {
var rx = new RegExp( "^(" + c + ")\\s+\\|\\s+(.+)\\s+\\|\\s+\\s+(.+)\\|", 'm' ) ;
var values = data.match(rx,'m');
return { airport:values[2] , city:values[3] };
}
}
function clickButton(){
var e = document.getElementById("code");
var ret = getInfoByCode(e.value);
var res = document.getElementById("res");
res.innerText = "Airport:" + ret.airport + " in " + ret.city;
}
</script>
</head>
<body>
<input id="code" value="AUA">
<button onclick="clickButton();">Find</button>
<div id="res">
</div>
</body>
</html>
答案 1 :(得分:2)
我最终使用shancarter.com/data_converter上的工具将我的flie转换为JSON文件并将其链接到我的页面。现在我只是遍历那个JSON对象来获得我需要的东西。这似乎是满足我特殊需求的最简单方式。