当最后一个范围为空值时,范围响应与范围请求不同
range response have difference with range request when last range have empty value
我尝试使用方法 spreadsheets.values.get
从 google sheet 获取数据。
sheet 表格
1
A
B
C
2
One
Two
Three
3
One
Two
4
One
Two
Three
问题是在发出如下请求时:'range' => 'A2:C'
、return 范围 3 上的值数据仅给出值 ['one', 'two']
而不是 ['one', 'two', '']
。
任何解决方案或参考资料?
不幸的是,在当前阶段,当使用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, ''));
}
}
本次修改,当行的长度小于数组的最大长度时,为行添加""
当你的样本值被使用时,在这个修改中,$values
被 $service->spreadsheets_values->get($spreadsheetId, $range)
检索到,它是 [["One","Two","Three"],["One","Two"],["One","Two","Three"]]
。而且,当使用我的附加脚本时,$values
变为 [["One","Two","Three"],["One","Two",""],["One","Two","Three"]]
.
参考:
我尝试使用方法 spreadsheets.values.get
从 google sheet 获取数据。
sheet 表格
1 | A | B | C |
---|---|---|---|
2 | One | Two | Three |
3 | One | Two | |
4 | One | Two | Three |
问题是在发出如下请求时:'range' => 'A2:C'
、return 范围 3 上的值数据仅给出值 ['one', 'two']
而不是 ['one', 'two', '']
。
任何解决方案或参考资料?
不幸的是,在当前阶段,当使用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, ''));
}
}
本次修改,当行的长度小于数组的最大长度时,为行添加
""
当你的样本值被使用时,在这个修改中,
$values
被$service->spreadsheets_values->get($spreadsheetId, $range)
检索到,它是[["One","Two","Three"],["One","Two"],["One","Two","Three"]]
。而且,当使用我的附加脚本时,$values
变为[["One","Two","Three"],["One","Two",""],["One","Two","Three"]]
.