2014-02-28 154 views
0

我想用Google电子表格中的数据创建一个自定义图表。然而它并没有那么好。你能给我一些建议吗?带谷歌电子表格的谷歌图表

这是考勤数据的数据结构在我的电子表格

Date | John | Allen | Danny 
11 Feb | Yes | No | Yes 
12 Feb | No | Yes | Yes 
13 Feb | Yes | Yes | Yes 
  1. 我想创建一个考勤表的每一天,显示(的所有天数的总和如2个PPL在2月11日, 2月12日2人)。我知道如何获取数据,但我怎样才能在Google Chart脚本中完成总和?
  2. 我想在一段时间内(例如二月/三月)为每个人创建一个考勤表。另外我想创建一个日期过滤器。我再次无法总结每个人的'是'。

在此先感谢

回答

0

要创建每天出勤的图表,你需要使用一个DataView与计算列的总和“是” S的每一天:

var view = new google.visualization.DataView(data); 
view.setColumns([0, { 
    type: 'number', 
    label: 'Attendance', 
    calc: function (dt, row) { 
     // assumes all columns after the first are yes/no columns for tracking attendance 
     var attendance = 0; 
     for (var i = 1; i < dt.getNumberOfColumns(); i++) { 
      attendance += (dt.getValue(row, i) == 'Yes') ? 1 : 0; 
     } 
     return attendance; 
    } 
}]); 

要亲自考勤,您需要使用google.visualization.data.group功能:

var groupColumns = []; 
for (var i = 1; i < data.getNumberOfColumns(); i++) { 
    groupColumns.push({ 
     type: 'number', 
     label: data.getColumnLabel(i), 
     aggregation: function (vals) { 
      var attendance = 0; 
      for (var j = 0; j < vals.length; j++) { 
       attendance += (vals[j] == 'Yes') ? 1 : 0; 
      } 
      return attendance; 
     } 
    }); 
} 
var groupedData = google.visualization.data.group(data, [{ 
    type: 'number', 
    column: 0, 
    modifier: function() {return 0;} 
}], groupColumns); 
+0

谢谢。顺便说一下Google Chart有任何“调试器”吗? – Winston

+0

没有专门用于Visualization API的调试器,但是您可以使用嵌入到Chrome或Firefox中的调试器(或者甚至是更新版本的IE,如果需要的话)。 – asgallant