从谷歌电子表格检索单元格日期到HTML服务
Retrieve cell date from a google spreadsheet to HTML service
我有一个提供HTML的谷歌应用脚本。它从谷歌电子表格中检索数据并将其呈现为 html 表。
它运行良好,除非单元格上有日期,我在 JS 控制台上收到以下错误:
Uncaught ScriptError: Se ha ejecutado la secuencia de comandos, pero el tipo de valor que se muestra es incompatible.
它是西班牙语,但意思是:执行了cmd序列,但显示的数据类型不兼容。
.HTML
<script type="text/javascript">
$(document).ready(function(){
$("#tabs").tabs();
google.script.run.withSuccessHandler(fillTabs).getAllTabsData();
});
</script>
我认为问题出在这个函数上,因为它在我实现它的每个脚本中都失败了:
function fillTabs(tabs) {
/*Tabs debe ser un array de objetos. cada objeto debe tener, name refiriendose a la pestaña y un array bidimensional con los datos de esa pestaña [rows][columns]*/
var tabsDiv;//=$('#tabs');
var table;
var data;
console.log("=Array tabs: "+tabs);
for (var i = 0; i < tabs.length; i++) {
data=tabs[i].data;
var tabName=tabs[i].name;
console.log("==Procesando: "+tabName);
tabsDiv=$('#'+tabName);
table='<table class="mytable"><tr>'
//iterando columnas primera fila (HEADERS)
for(var x=0; x<data[0].length;x++){
table+='<th>'+data[0][x]+'</th>'
}
table+=' <th width="20%">Action</th></tr>'; //cabeceras fin
for( var j=1; j<data.length; j++){//iterando rows. Empezamos en la 1 porque 0=headers
table+='<tr id="'+j+'">'
for(var k=0; k<data[j].length;k++){//iterando columns
table+='<td>'+data[j][k]+'</td>'
}
table+='<td></td></tr>'
}
table+='</table/>'
tabsDiv.html(table);
}
$("tr:odd").addClass("odd");
};
一般事务人员
function getAllTabsData(){
var tabNames = getColumnData('Types');
var sSheet =SpreadsheetApp.openById(key);
var tabsObject=[];
for(var i=0; i<tabNames.length;i++){
tabsObject.push(
{ name:tabNames[i],
data:sSheet.getSheetByName(tabNames[i]).getDataRange().getValues()});
}
Logger.log(tabsObject);
return tabsObject;
}
我在 GS 部分没有任何错误,只是在 HTML 中。之后的所有 JavaScript 代码都没有被执行。
我检查了其他类似的脚本,它适用于日期。你可以在这里看到它https://script.google.com/macros/s/AKfycbwr9wDJibSknCy4thjj6Hedz8H9NOq2Ren6NLqBUhf6nzVYquFL/exec
唯一的区别是它不返回对象数组(像我一样),它只返回单个数组。
我不明白为什么这"通过聋子"不起作用,但正如我怀疑的那样,JSON 完成了这项工作
在服务器端添加 JSON.stringify 和
JSON && JSON.parse(json) || $.parseJSON(json);
在客户端工作。
我复制了那行代码。我理解||后面的部分,但我不明白为什么要使用JSON && JSON.parse。我想是为了避免在JSON不可用时尝试JSON.parse。
相关文章:
- AngularJS-需要在index.html页面中访问来自服务的数据
- 从简单的html页面调用实时Web服务.
- 谷歌应用程序脚本html服务和加载谷歌地图javascript api V3
- JQuery-HTML到PDF没有'无法在IE中工作(来自C#asmx Web服务)
- 在HTML服务中验证电子表格
- 将JSON从索引操作服务到公用文件夹中的index.html
- HTML服务为图像分配URL
- 如何在URL中不指定.html、.json的情况下配置web.xml来服务任何请求
- 使用ajax将数据发布到asmx web服务并使用javascript函数在html页面中编写响应时出错
- 在异步内部函数返回 [UI-路由器和 HTML 服务] 之后返回外部 fn
- 从谷歌电子表格检索单元格日期到HTML服务
- .gs/.Google Apps 脚本作为 Web 应用,使用表单元素、HTML 服务和电子表格
- 如何从图表谷歌脚本的电子表格中检索数据.(使用 HTML 服务)
- 使用谷歌HTML服务上传文件时验证HTML输入字段
- 谷歌应用程序脚本的新功能'的HTML服务
- 谷歌应用程序脚本HTML服务-Can't get Keypress to work
- 表日期列格式化与谷歌应用程序脚本html服务
- 表单验证使用HTML服务在谷歌应用脚本
- Touchmove不能与Google apps scripts html服务一起工作
- 对象引用在HTML服务中丢失