2013-04-23 46 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

相關問題