Date 日期列的arrayToDataTable的替代方案
我是stackexchange的新手,因此,如果这个问题太广泛,或者已经在我找不到的地方得到了回答,我深表歉意。您可以找到电子表格、脚本和仪表板(dev版本) 几天来,我一直在用谷歌应用程序脚本可视化处理日期 我的最终目标是制作一个仪表板,其中包括带注释的时间线以及基于电子表格中数据集的其他图表。我已经使用创建一个三层google可视化仪表板开始了这个过程,其中数据从外部电子表格中提取,然后使用arrayToDataTable提取到数据表中。一切都是开箱即用的。但是,我的数据包含日期,因此我在原始数据中添加了一个日期列,但是arrayToDataTable不接受日期类型。因此,当添加日期列时,我得到以下结果: ScriptError:脚本已完成,但返回的值不是 支持的返回类型 我尝试了多种方法来确保日期格式的一致性:选项包括通过Date 日期列的arrayToDataTable的替代方案,date,google-apps-script,google-sheets,google-visualization,Date,Google Apps Script,Google Sheets,Google Visualization,我是stackexchange的新手,因此,如果这个问题太广泛,或者已经在我找不到的地方得到了回答,我深表歉意。您可以找到电子表格、脚本和仪表板(dev版本) 几天来,我一直在用谷歌应用程序脚本可视化处理日期 我的最终目标是制作一个仪表板,其中包括带注释的时间线以及基于电子表格中数据集的其他图表。我已经使用创建一个三层google可视化仪表板开始了这个过程,其中数据从外部电子表格中提取,然后使用arrayToDataTable提取到数据表中。一切都是开箱即用的。但是,我的数据包含日期,因此我在原
newdate(dateColumn[I])
,dateColumn[I].toJSON()
(呈现仪表板,但无法处理日期),在电子表格中强制使用日期格式(yyyy-MM-dd),使用上面文章中概述的数据视图(仪表板无法通过“加载”),等等
所以我的问题是,在这种三层方法中,什么是arrayToDataTable的替代方案可以接受日期列?或者,以下方法中有哪些错误
对于尝试添加列的所有情况,我已将代码从var data=google.visualization.arrayToDataTable(response,false)
更改为var data=google.visualization.DataTable()
我尝试了以下方法:
//添加行
对于(var i=1;i,您可以使用Query(google.visualization.Query
)类从电子表格中提取数据,
这将正确转换日期列
google.charts.load('current'{
套餐:[“表”]
}).然后(函数(){
变量queryURL=https://docs.google.com/spreadsheets/d/1aaxYNLCuPz3o3TA1jdryenUP01Qbkdaut4AR5eIhe9s/edit#gid=0';
var query=new google.visualization.query(queryURL).send(函数(响应){
var data=response.getDataTable();
//显示列类型
对于(var i=0;i
您可以使用Query(google.visualization.Query
)类从电子表格中提取数据,
这将正确转换日期列
google.charts.load('current'{
套餐:[“表”]
}).然后(函数(){
变量queryURL=https://docs.google.com/spreadsheets/d/1aaxYNLCuPz3o3TA1jdryenUP01Qbkdaut4AR5eIhe9s/edit#gid=0';
var query=new google.visualization.query(queryURL).send(函数(响应){
var data=response.getDataTable();
//显示列类型
对于(var i=0;i
很抱歉,我太快点击了enter。非常感谢您的回答。我怀疑这是我需要进入的方向。但是,我不确定如何实际实现它。我的脚本文件中有4张表,其中两张与此相关,分别是code.gs和my javascript.html。您建议的查询似乎会进入javascript文件中,但我相信Mogsdad创建了不同的表单,以阻止访问仪表板后面的电子表格,并且只发送“响应”对于javascript文件。你能提供一些关于实现的更多指导吗?谢谢,所以我最终成功了,基本上放弃了现有示例中的大部分代码。为了避免访问底层电子表格,我创建了一个中间电子表格,查询从中提取,中间电子表格en从源代码中提取,但只能公开信息。很抱歉,我单击enter太快。非常感谢您的回答。我怀疑这是我需要进入的方向。但是,我不确定如何实际实现它。我的脚本文件中有4张表,与此相关的两张是code.gs,然后是我的javascript.html。您建议的查询似乎会出现在javascript文件中,但我相信Mogsdad创建了不同的表单,以阻止访问仪表板后面的电子表格,并且只发送“响应”对于javascript文件。你能提供一些关于实现的更多指导吗?谢谢,所以我最终成功了,基本上放弃了现有示例中的大部分代码。为了避免访问底层电子表格,我创建了一个中间电子表格,查询从中提取,中间电子表格en从源头获取信息,但只能公开信息。
//Add Columns
data.addColumn('string','Name');
data.addColumn('string','Gender');
data.addColumn('number','Age');
data.addColumn('number','Donuts eaten');
data.addColumn('date','Last Donut Eaten');
//Add Rows
data.addRows([
['Miranda','Female', 22,6,6],
['Jessica','Female',22,6,12],
['Aaron','Male',3,1,13]
]);
//Add Rows
for (var i=1; i<response.length; i++) {
data.addRow(response[i]);
}
for (var i=0; i<response[0].length; i++) {
if (response[1][i] instanceof Date) { //Checks if first value is Date
data.addColumn('date',response[0][i]);
};
else if (response[1][i] instanceof Number) //Checks if first value is Number
data.addColum('number',response[0][i]);
else data.addColumn('string',response[0][i]; //Otherwise assume string
};