Javascript 用于原型化的CSV/Excel到JSON API

Javascript 用于原型化的CSV/Excel到JSON API,javascript,sql,json,csv,prototyping,Javascript,Sql,Json,Csv,Prototyping,我有一个CSV文件,我想在不同的可视化框架(d3、谷歌图表等)中使用它。是否有一个平台可以让我快速: 上传CSV文件 以JSON的形式访问文件的内容 如果我可以查询JSON(SQL样式),还有额外的要点 如果我可以上传多个CSV文件并使用查询连接将两者链接在一起,则会得到额外的分数 我尝试过使用谷歌电子表格和谷歌可视化API查询语言。问题是,当您从电子表格中获取JSON时,您将以电子表格格式获取它(如中所示,每个单元格获取一项,而不是CSV文件的初始格式) 谢谢。你可以在图书馆试试,在那里你可以

我有一个CSV文件,我想在不同的可视化框架(d3、谷歌图表等)中使用它。是否有一个平台可以让我快速:

  • 上传CSV文件
  • 以JSON的形式访问文件的内容

  • 如果我可以查询JSON(SQL样式),还有额外的要点

  • 如果我可以上传多个CSV文件并使用查询连接将两者链接在一起,则会得到额外的分数
  • 我尝试过使用谷歌电子表格和谷歌可视化API查询语言。问题是,当您从电子表格中获取JSON时,您将以电子表格格式获取它(如中所示,每个单元格获取一项,而不是CSV文件的初始格式)

    谢谢。

    你可以在图书馆试试,在那里你可以

    a) 上传CSV文件

     alasql('SELECT * FROM CSV("cities.csv")', [], function(cities){
         console.log("Cities:", cities);
     });
    
    b) 以JSON的形式访问文件的内容:

     alasql('SELECT * FROM CSV("mydata.csv",{headers:true})', [], function(mydata){
         console.log("First city name:", mydata[0].City);
     });
    
    c) 查询JSON(SQL样式)

    d) 上载多个CSV文件,并使用查询联接将两者链接在一起

    alasql('SELECT cities.*  FROM CSV("cities.csv",{headers:true}) AS cities \
       JOIN CSV("countires.csv",{headers:true}) AS countries \
       ON cities.country = countries.country \
       WHERE countries.continent = "Afrika"',
       [], function(res){
          console.log("African cities: ",res);
    });
    

    有一种方法可以使用可视化API从Google电子表格中获取csv

    尝试此操作,csv变量将使用dataTableToCsv()辅助函数设置为工作表。如果需要,可以使用其他方便的函数包含列标题

    
    函数drawVisualization(){
    var query=new google.visualization.query(
    'http://spreadsheets.google.com/tq?key=pCQbetd-CptGXxxQIG7VFIQ&pub=1’;
    //应用查询语言语句。
    setQuery('SELECT*');
    //使用回调函数发送查询。
    发送(handleQueryResponse);
    }
    函数handleQueryResponse(响应){
    if(response.isError()){
    警报('查询中的错误:'+response.getMessage()+'+response.getDetailedMessage());
    返回;
    }
    var data=response.getDataTable();
    var csv=google.visualization.datatabletosv(数据);
    }
    
    通过在url末尾设置查询,也可以直接从电子表格下载csv。但是,如果您想提交呼叫,则需要一个服务来处理跨域请求。
    alasql('SELECT cities.*  FROM CSV("cities.csv",{headers:true}) AS cities \
       JOIN CSV("countires.csv",{headers:true}) AS countries \
       ON cities.country = countries.country \
       WHERE countries.continent = "Afrika"',
       [], function(res){
          console.log("African cities: ",res);
    });
    
    <script type="text/javascript"
          src='https://www.google.com/jsapi?autoload={
            "modules":[{
            "name":"visualization",
            "version":"1"
            }]
          }'></script>
    <script type="text/javascript">
      function drawVisualization() {
        var query = new google.visualization.Query(
            'http://spreadsheets.google.com/tq?key=pCQbetd-CptGXxxQIG7VFIQ&pub=1');
    
        // Apply query language statement.
        query.setQuery('SELECT *');
    
        // Send the query with a callback function.
        query.send(handleQueryResponse);
      }
    
    function handleQueryResponse(response) {
        if (response.isError()) {
          alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
          return;
        }
    
        var data = response.getDataTable();
    
     var csv = google.visualization.dataTableToCsv(data);
      }
    
    </script>
    </head>
    <body>
      <div id="visualization" style="height: 400px; width: 400px;"></div>
    </body>