0

Excel で作成した CSV ファイルを解析しようとしています。これを使って Google マップを更新したいと考えています。この Google マップは、Android 用の Eclipse で開発しているモバイル アプリにあります。

正直なところ、JavaScript の書き方がわかりません。どんな助けでも大歓迎です。喜んであなたの功績を称えたいと思います。

ユーザーが次のことを行うボタンを押したときに、いくつかの JavaScript を実行したいだけです。

  1. ユーザーの現在地を特定します (この部分は既に実行済みです!)
  2. .CSV を解析して、.CSV Excel ファイルに入力された近くの場所を特定します
  3. ユーザーがクリックすると、Google マップ アプリが開き、ユーザーの現在の場所 (Geolocation) からその場所へのユーザーの移動を開始する「ナビゲート」という小さなリンクを、すべての場所の通知バブル内に表示します。

これは、このアプリケーションを完了するために必要な唯一の部分です。繰り返しになりますが、どんな助けでも大歓迎です。みんな、ありがとう!

4

3 に答える 3

1

これが役立つかどうかはわかりませんが、役立つ場合はhttp://www.randomactsofsentience.com/2012/04/csv-handling-in-javascript.htmlを参照してください...

追加:上記にリンクされたソリューションに加えて(私の好み)、スタックされた正規表現のシェッドロードを使用してCSVをトークン化しましたが、カスタムエラー状態を変更するのは簡単ではありません...

重そうに見えますが、それでも数ミリ秒しかかかりません:

function csvSplit(csv){
  csv = csv.replace(/\r\n/g,'\n')
  var rows = csv.split("\n");
  for (var i=0; i<rows.length; i++){
    var row = rows[i];
    rows[i] = new Array();
    row = row.replace(/&/g, "&amp;");
    row = row.replace(/\\\\/g, "&#92;");
    row = row.replace(/\\"/g, "&quot;");
    row = row.replace(/\\'/g, "&#39;");
    row = row.replace(/\\,/g, "&#44;");
    row = row.replace(/@/g, "&#64;");
    row = row.replace(/\?/g, "&#63;");
    row = row.replace(/"([^"]*)"/g, "@$1\?");
    while (row.match(/@([^\?]*),([^\?]*)\?/)){
      row = row.replace(/@([^\?]*),([^\?]*)\?/g, "@$1&#44;$2?");
    }
    row = row.replace(/[\?@]/g, "");
    row = row.replace(/\'([^\']*)\'/g, "@$1\?");
    while (row.match(/@([^\?]*),([^\?]*)\?/)){
      row = row.replace(/@([^\?]*),([^\?]*)\?/g, "@$1&#44;$2?");
    }
    row = row.replace(/[\?@]/g, "");
    row = row.split(",")
    for (var j=0; j<row.length; j++){
      col = row[j];
      col = col.replace(/&#63;/g, "\?");
      col = col.replace(/&#64;/g, "@");
      col = col.replace(/&#44;/g, ",");
      col = col.replace(/&#39;/g, '\'');
      col = col.replace(/&quot;/g, '\"');
      col = col.replace(/&#92;/g, '\\');
      col = col.replace(/&amp;/g, "&");
      row[j]=col;
    }
    rows[i] = row;
  }
  return rows;
}
于 2012-04-08T01:58:32.027 に答える
1

正直なところ、私はこの問題に何度も悩まされてきました。CSV 形式は簡単に解析できるように作られておらず、複雑な RegEx を使用しても解析が困難です。

正直なところ、最善の方法は、それを FormSite または PHPMyAdmin にインポートしてから、"," よりも解析しやすいカスタム セパレーターを使用してドキュメントを再エクスポートすることです。フィールド区切り文字として「%%」をよく使用しますが、すべてが魅力的に機能します。

于 2012-04-07T22:27:27.073 に答える
-2

これはうまくいくようです。日本語を翻訳したいかもしれませんが、使用するのは非常に簡単です: http://code.google.com/p/csvdatajs/

于 2013-06-15T23:22:20.877 に答える