当数据类型混合时,访问谷歌电子表格中的数据

Accessing data from Google spreadsheet when data types are mixed

本文关键字:电子表格 数据 谷歌 访问 数据类型 混合      更新时间:2023-09-26

我有一个电子表格,格式为带标题的表格,我想使用Google可视化查询API将其读取到JS中。

var query=new google.visualization.Query(url);
query.send(handleGoogleResponse);
...
function handleGoogleResponse(response) {
    var data=response.getDataTable();
...

当字段都是纯文本格式时,一切都很好,但如果其中一个字段是TimeStamp的格式,数据就会变得不稳定。是否有强制查询将未格式化的数据作为字符串返回?我已经尝试了格式和选项子句

在谷歌电子表格网站上,在您的工作表中:

  • 选择您的列
  • 格式->数字->纯文本

现在,该列的数据类型应该是字符串。

当标题行与下面列中的数据类型不同时,谷歌对表格"形状"的处理方式不同。

这似乎对两种情况都有效:

var query=new google.visualization.Query(url);
query.send(handleGoogleResponse);
function handleGoogleResponse(response) {
    var i,j,o,lab;
    var keys=[];
    var theData=[];
    var data=response.getDataTable();
    var cols=data.getNumberOfColumns(); 
    var rows=data.getNumberOfRows()
    var hasLabels=data.getColumnLabel(0) ? true : false;
    for (i=0;i<cols;++i) {
        if (hasLabels)  
            lab=$.trim(data.getColumnLabel(i)); 
        else    
            lab=$.trim(data.getFormattedValue(0,i));
        if (!lab)
            break;  
        keys.push(lab);
        var s=hasLabels ? 0 : 1;
        for (i=s;i<rows;++i) {
            o={};
            for (j=0;j<keys.length;++j) 
                o[keys[j]]=data.getValue(i,j);
            theData.push(o);    
            }
}