2013-04-23 44 views
9

我有机场代码,名称和位置列表中的Excel电子表格的形式大致如下:最简单的方法来从Excel电子表格读取数据与JavaScript?

+-------+----------------------------------------+-------------------+ 
| 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

什么是让我从电子表格所需要的数据最简单的方法?

额外的信息:

  1. 电子表格有超过17000项
  2. 功能上面提到的可能行被称为高达8倍
  3. 我没有使用Excel电子表格这就是我现在有的
  4. 我永远不需要用我的代码编辑电子表格

我在网上搜索过,但是我能找到的所有东西都比我想要做的要复杂得多,所以很难理解我在寻找什么。

谢谢任何​​帮助指引我在正确的方向。

+0

服务器端或客户端? XLS,XLSX或CSV? – jantimon 2013-04-23 14:56:30

+0

客户端,我可以使用任何格式将使它更容易,或完全不同类型的文件,文件本身将保留在服务器上,如果这就是你的意思 – DelightedD0D 2013-04-23 14:59:51

+1

D3能够解析CSV文件https:// github .com/mbostock/d3/wiki/CSV 但是我更愿意使用JSON文件。 – jantimon 2013-04-23 15:02:28

回答

2

我最终使用的工具在shancarter.com/data_converter将我的flie转换为JSON文件并将其链接到我的页面。现在我只是通过该JSON对象循环来获得我需要的东西。这似乎是满足我特殊需求的最简单方法。

+3

为什么地球上会有人低估这一点?我的问题非常清楚,这实际上是我的需求的最简单的解决方案 – DelightedD0D 2015-01-17 06:36:06

+0

http://shancarter.github.io/mr-data-converter/ – 2017-06-21 17:13:36

4

我使用的纯文本文件(CSV或TSV两者可直接从Excel导出)

加载到这一点通过XMLHttpRequest字符串变种。通常,浏览器缓存将停止在每次加载页面时下载文件。

然后让Regex根据需要解析出这些值。

所有没有使用任何第三方....我可以挖出代码,如果你愿意。

例子: 您需要在同一Web文件夹data.txt文件,因为这页,或更新的路径...

<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> 
+0

这听起来就在我的胡同里,我喜欢看你的意思。 – DelightedD0D 2013-04-23 15:19:05

相关问题