我必须误解他们的文档,但这看起来如此简单明了......
我这里有一个非常简单的表格文件:https://docs.google.com/spreadsheets/d/1I8PQWcldqZmCpctFPyXm5UpPgjeRYpX8dtkVxYgcy08/edit?usp=sharing
查看文档。有几行?看起来有 5 行,对吧?
让我们使用Visualization API编写一些JavaScript代码......
function displayData(response) {
var data = response.getDataTable();
console.log(data.getNumberOfRows());
}
var opts = {sendMethod: 'auto'};
var query = new google.visualization.Query('https://docs.google.com/spreadsheets/d/1I8PQWcldqZmCpctFPyXm5UpPgjeRYpX8dtkVxYgcy08/edit?usp=sharing', opts);
query.setQuery('select *');
query.send(displayData);
超级简单!从电子表格中获取所有数据,并打印行数。
但观察到的结果是 1 行。为什么1?这没有用。
当您深入了解DataTable时,您会发现它将应分开的单元格连接起来,例如data.Ff[0].label === "foo one uno"
。
为什么?这是一个错误,还是我误解了这个API?
答案 0 :(得分:1)
值得注意的是QUERY不会返回具有混合数据类型的列:
如果单个列中包含混合数据类型,则为多数数据类型 确定列的数据类型以供查询。少数民族 数据类型被视为空值。
以下是编辑数据源URL的解决方法:
google.load('visualization', '1', {
callback: function () {
var query = new google.visualization.Query('https://docs.google.com/spreadsheets/d/1I8PQWcldqZmCpctFPyXm5UpPgjeRYpX8dtkVxYgcy08/gviz/tq?tqx=out:html&tq?gid=0&headers=0&range=A1:C');
query.send(displayData);
}
});
function displayData(response) {
numRows = response.getDataTable().getNumberOfRows();
document.getElementById('data').innerHTML = numRows;
}