谷歌可视化查询&表格-没有返回正确的行简单的电子表格

Google Visualization Query & Sheets -- not returning proper rows for simple spreadsheet

本文关键字:电子表格 简单 返回 查询 可视化 表格 谷歌      更新时间:2023-09-26

我一定是误解了他们的文档,但这看起来是如此简单和直接…

这里有一个非常简单的Sheets文档:https://docs.google.com/spreadsheets/d/1I8PQWcldqZmCpctFPyXm5UpPgjeRYpX8dtkVxYgcy08/edit?usp=sharing

看文件。有多少行?看起来有5行行,对吧?

让我们使用可视化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" .

为什么?这是一个bug,还是我误解了这个API?

值得注意的是,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;
}
http://jsfiddle.net/gregpearl/zs98r3v8/