谷歌图表使用JSON - 格式问题 - ASP.net - “表没有列”

时间:2014-01-25 05:59:58

标签: asp.net json excel-vba vba excel

我看到有两种类型的JSON格式,并且真的很困惑。

我试图做以下事情:

  1. 我有一个带范围的excel模型 输入RV MRC 10 CRC 20 CVA 30 OpRisk 0

  2. 使用cDataSet(http://ramblings.mcpher.com/Home/excelquirks/json/excel-json-conversion)中的ExCelToWeb vba函数,我将此范围转换为JSON字符串。输出如下:

    {   "cDataSet":[      
       {
         "Type":"MRC",
         "RV":10
       },
       {
          "Type":"CRC",
          "RV":20
       },
       {
          "Type":"CVA",
          "RV":30
       },
       {
          "Type":"OpRisk",
          "RV":0
       }
    ]}
    
  3. 我将其保存到名为myData.json

  4. 的文本文件中
  5. 在Default.aspx.cs中,我有

    [WebMethod]
    public static String GetDataJSON(){
      String myvar = File.ReadAllText("C:\\Users\\Serge\\Downloads\\GoogleChartExample\\GoogleChartExample\\myData.json");
      return myvar;
    }
    
  6. 我在Default.aspx

    中调用Java Script中的函数
    google.load('visualization', '1', { packages: ['corechart'] });
    google.setOnLoadCallback(drawChart);
    
    function drawChart() {
        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: 'Default.aspx/GetDataJSON',
            contentType: 'application/json',
            data: {},
            async: false,
            success:
                function (response) {
                   console.log(response.d);
                   var data = new google.visualization.DataTable(response.d);
                   var csv = google.visualization.dataTableToCsv(data);
                   console.log(csv);
                   new google.visualization.ColumnChart(document.getElementById('myChart1')).draw(data, { title: "MyChart1" });
                },
            error: function (jqXHR, textStatus, errorThrown) {
                alert(textStatus + '\n' + errorThrown);
                if (!$.browser.msie) {
                    console.log(jqXHR);
                }
        }
        });
    }
    
  7. => console.log(response.d)完全按照预期输出我的JSON字符串

    => console.log(csv)不输出任何内容

    =>谷歌图表输出一个红色框,上面写着“表没有列”

    据我所知,有两种类型的JSON格式。谷歌在其示例中有一个“cols”:[和“行”:[。是否表示Google Chart / Dataset与我的格式不兼容?反正我是否可以从一个转换为另一个?

    我最好不要使用JSON并从excel导出 - > cvs =>一个C#数组 - >谷歌数据集?

    非常感谢你。 哔叽

0 个答案:

没有答案