0

我正在尝试解析我在 Excel 中制作的 CSV 文件。我想用它来更新我的谷歌地图。此 Google 地图位于我正在使用 Eclipse for Android 开发的移动应用程序中。

老实说,我不确定如何编写 JavaScript。任何帮助将不胜感激。我很乐意相信你的工作。

我只想在用户点击执行以下操作的按钮时运行一些 JavaScript:

  1. 定位用户当前位置(我已经完成了这部分!)
  2. 通过解析 .CSV 找到在 .CSV excel 文件中输入的附近位置
  3. 在每个位置通知气泡内显示一个小链接,上面写着“导航”,当用户单击它时,打开谷歌地图应用程序并开始从用户当前位置(地理位置)将用户导航到该位置。

这是我完成此应用程序所需的唯一部分。所以再一次,任何帮助都将不胜感激。感谢大家!

4

3 回答 3

1

老实说,我一直在解决这个问题。CSV 格式不是为了便于解析而制作的,即使使用复杂的 RegEx 也很难解析。

老实说,最好的做法是将其导入 FormSite 或 PHPMyAdmin,然后使用比“,”更易于解析的自定义分隔符重新导出文档。我经常使用“%%”作为字段分隔符,一切都像一个魅力。

于 2012-04-07T22:27:27.073 回答
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 回答
-2

这似乎有效。您可能想翻译日语,但使用起来非常简单: http ://code.google.com/p/csvdatajs/

于 2013-06-15T23:22:20.877 回答