【问题标题】:range response have difference with range request when last range have empty value当最后一个范围为空值时,范围响应与范围请求有差异
【发布时间】:2021-12-13 03:02:34
【问题描述】:

我尝试使用方法spreadsheets.values.get从谷歌表中获取数据。

工作表

1 A B C
2 One Two Three
3 One Two
4 One Two Three

问题是在发出类似'range' => 'A2:C' 的请求时,返回范围 3 上的值数据只给出值 ['one', 'two'] 而不是 ['one', 'two', '']

任何解决方案或参考资料?

【问题讨论】:

    标签: php google-sheets-api


    【解决方案1】:

    不幸的是,在当前阶段,当使用spreadsheets.values.get 检索值时,将获得您的情况作为默认情况。在您的示例电子表格中,它变为[["One","Two","Three"],["One","Two"],["One","Two","Three"]]。所以在这种情况下,需要准备一个脚本来实现你的目标。在这个答案中,我想提出脚本。

    示例脚本:

    // Use spreadsheets.values.get. Please replace this for your actual script.
    $res = $service->spreadsheets_values->get($spreadsheetId, $range);
    
    // I added below script.
    $values = $res['values'];
    $maxLen = max(array_map(function ($v) { return count($v); }, $values));
    foreach($values as $i => $v) {
        $len = count($v);
        if ($len < $maxLen) {
            $values[$i] = array_merge($v, array_fill(0, $maxLen - $len, ''));
        }
    }
    
    • 在本次修改中,当行的长度小于数组的最大长度时,为该行添加""

    • 使用您的样本值时,在此修改中,$service-&gt;spreadsheets_values-&gt;get($spreadsheetId, $range) 检索到的$values[["One","Two","Three"],["One","Two"],["One","Two","Three"]]。而且,当使用我的附加脚本时,$values 变为 [["One","Two","Three"],["One","Two",""],["One","Two","Three"]]

    参考:

    【讨论】:

    • @Syaifudin Zuhri 感谢您的回复。我很高兴你的问题得到了解决。也谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多