2013-04-23 7 views
9

私は、空港コード、名称、および以下のような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. スプレッドシート関数は上の行に8回までと呼ばれることも示唆した
  2. 17,000エントリ
  3. は、私が使用する必要はありませんがありますExcelのスプレッドシートは私の今のものだ
  4. 私のコードでスプレッドシートを編集する必要はありません

私はウェブ上で検索しましたが、私が見つけることができるものは、何をしようとしているのよりもはるかに複雑でしたので、探しているものを理解することが難しくなりました。

正しい方向に私を向ける助けをありがとう。

私は(エクセルから直接エクスポートすることができ、どちらもCSV、またはTSV)プレーンテキストファイルを使用しました
+0

サーバー側またはクライアント側? XLS、XLSXまたはCSV? – jantimon

+0

クライアント側で、私はどんなフォーマットでも簡単に使うことができますし、別の種類のファイルを使用することもできます。つまり、ファイル自体はサーバーに保存されます。 – DelightedD0D

+1

D3はCSVファイルを解析できます。https:// github .com/mbostock/d3/wiki/CSV しかし、私はJSONファイルを使いたいと思っています。 – jantimon

答えて

2

私がツールを使用して終了shancarter.com/data_converterを使って私のflieをJSONファイルに変換し、それを私のページにリンクしました。今、私は必要なものを得るためにそのJSONオブジェクトをループします。これは、私の特別なニーズのための最も簡単な方法のようでした。

+3

なぜ地球上に誰がこれをdownvoteだろうか?私の質問は非常に明確で、これは実際に私のニーズにとって最も簡単な解決策でした。 – DelightedD0D

+0

http://shancarter.github.io/mr-data-converter/ –

4

のXMLHttpRequestを経由して、文字列のVARにそのロード。通常、ブラウザのキャッシュは、各ページの読み込み時にファイルをダウンロードする必要がなくなります。

次に、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

それは私の路地を右に聞こえる、IDはあなたが何を意味するのが大好きです。 – DelightedD0D

関連する問題