Charts 如何使用Google图表使用Google工作表中的数据绘制甘特图?

Charts 如何使用Google图表使用Google工作表中的数据绘制甘特图?,charts,google-visualization,Charts,Google Visualization,因此,我有点了解如何通过手动输入示例中所示的数据来使用,但我就是不知道如何从Google工作表中摄取数据。最令人困惑的部分是我可以从示例代码中删除和不能删除的部分,如: data.addRows([ ['Research', 'Find sources', null, new Date(2015, 0, 1), new Date(2015, 0, 5), null, 100, null], ['Write', 'Write paper', 'write',

因此,我有点了解如何通过手动输入示例中所示的数据来使用,但我就是不知道如何从Google工作表中摄取数据。最令人困惑的部分是我可以从示例代码中删除和不能删除的部分,如:

  data.addRows([
    ['Research', 'Find sources', null,
     new Date(2015, 0, 1), new Date(2015, 0, 5), null,  100,  null],
    ['Write', 'Write paper', 'write',
     null, new Date(2015, 0, 9), daysToMilliseconds(3), 25, 'Research,Outline'],
    ['Cite', 'Create bibliography', 'write',
     null, new Date(2015, 0, 7), daysToMilliseconds(1), 20, 'Research'],
    ['Complete', 'Hand in paper', 'complete',
     null, new Date(2015, 0, 10), daysToMilliseconds(1), 0, 'Cite,Write'],
    ['Outline', 'Outline paper', 'write',
     null, new Date(2015, 0, 6), daysToMilliseconds(1), 100, 'Research']
  ]);

以及如何正确地查询我的工作表,然后绘制图表。这,我猜,基本上意味着我不知道蹲,我的眼睛在流血,试图弄明白这一点

以下是我的数据:

正如你所看到的,我显然是个文盲。非常感谢您的帮助。下面是我糟糕的c&p编码:

google.charts.load('current', {'packages':['gantt']});
google.charts.setOnLoadCallback(drawChart);

function daysToMilliseconds(days) {
  return days * 24 * 60 * 60 * 1000;
}

function drawChart() {
  var query = new google.visualization.Query('https://docs.google.com/spreadsheets/d/1M3wQgKg3JBF6_hzv1xWONP7HWVYoOvJ1jPbB27IUg94/gviz/tq?gid=0&headers=1');

  query.setQuery('SELECT A, B, C, D, E, F, G, H');
  query.send(function (response) {
    if (response.isError()) {
        alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
        return;
    };

  var data = new google.visualization.DataTable();
   data.addColumn('string', 'Task ID');
   data.addColumn('string', 'Task Name');
   data.addColumn('string', 'Resource');
   data.addColumn('date', 'Start Date');
   data.addColumn('date', 'End Date');
   data.addColumn('number', 'Duration');
   data.addColumn('number', 'Percent Complete');
   data.addColumn('string', 'Dependencies');

  var data = response.getDataTable();

  var options = {
    height: 275
  };

  var chart = new google.visualization.Gantt(document.getElementById('chart_div'));

  chart.draw(data, options);
}

如果电子表格数据与图表的匹配,
无需进行数据操作。
这里似乎就是这样


请参阅以下工作片段,
'Outline'
'Write'
的依赖似乎有点偏离了路径

google.charts.load('current'{
回调:图纸,
软件包:[“甘特”]
});
函数绘图图(){
var query=new google.visualization.query('https://docs.google.com/spreadsheets/d/1M3wQgKg3JBF6_hzv1xWONP7HWVYoOvJ1jPbB27IUg94/gviz/tq?gid=0&headers=1');
query.send(函数(响应){
if(response.isError()){
log('查询中的错误:'+response.getMessage()+''+response.getDetailedMessage());
返回;
};
变量选项={
身高:275
};
var chart=new google.visualization.Gantt(document.getElementById('chart\u div');
draw(response.getDataTable(),options);
});
}


如果您有时间,您能告诉我为什么在谷歌的例子中需要这样做吗?函数daystomissions(days){return days*24*60*60*1000;}非常感谢您的帮助。它起作用了!但有一个问题。。。除了
height:275
之外,其他选项似乎不起作用,例如:`var options={height:275,gantt:{criticalPathEnabled:true,criticalPathStyle:{stroke:'#e64a19',strokeWidth:5}}`我很抱歉;我无法正确设置格式…
daystomissions
在示例中用于计算持续时间列--至于关键路径的样式,选项是正确的--但是,根据数据,所有其他任务在最终任务开始之前开始并完成,因此没有要突出显示的关键路径。。。
google.charts.load('current', {'packages':['gantt']});
google.charts.setOnLoadCallback(drawChart);

function daysToMilliseconds(days) {
  return days * 24 * 60 * 60 * 1000;
}

function drawChart() {
  var query = new google.visualization.Query('https://docs.google.com/spreadsheets/d/1M3wQgKg3JBF6_hzv1xWONP7HWVYoOvJ1jPbB27IUg94/gviz/tq?gid=0&headers=1');

  query.setQuery('SELECT A, B, C, D, E, F, G, H');
  query.send(function (response) {
    if (response.isError()) {
        alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
        return;
    };

  var data = new google.visualization.DataTable();
   data.addColumn('string', 'Task ID');
   data.addColumn('string', 'Task Name');
   data.addColumn('string', 'Resource');
   data.addColumn('date', 'Start Date');
   data.addColumn('date', 'End Date');
   data.addColumn('number', 'Duration');
   data.addColumn('number', 'Percent Complete');
   data.addColumn('string', 'Dependencies');

  var data = response.getDataTable();

  var options = {
    height: 275
  };

  var chart = new google.visualization.Gantt(document.getElementById('chart_div'));

  chart.draw(data, options);
}