我找到了其他相关文章,但没有一篇基于PHP API给出我所需的答案。
我有一个电子表格,其中的单元格包含超链接:
这是我的代码:
$get_range = "Sheet1!A:Z";
$response = $service->spreadsheets_values->get($spreadsheetId, $get_range, ['valueRenderOption' => 'FORMULA']);
$values = $response->getValues();
$values
返回的内容是
Array
(
[0] => Array
(
[0] => Column Title
)
[1] => Array
(
[0] => Some Item
)
[2] => Array
(
[0] => Some Item with a Link
)
[3] => Array
(
[0] => Some Item
)
[4] => Array
(
[0] => Another Item
)
)
您会注意到,返回的数据中与链接没有任何关系。有没有人成功使用PHP API获得链接?
答案 0 :(得分:0)
我相信您的目标和当前情况如下。
fields
。当以上几点反映到示例脚本中时,它如下所示。
$spreadsheetId = "###"; // please set Spreadsheet ID.
$sheetName = "Sheet1"; // Please set sheet name.
$res = $service->spreadsheets->get($spreadsheetId, ["ranges" => [$sheetName], "fields" => "sheets(data(rowData(values(hyperlink,formattedValue))))"]);
$rowData = $res->getSheets()[0]->getData()[0]->getRowData();
$result = [];
foreach ($rowData as $i => $row) {
foreach ($row as $j => $col) {
$link = $col -> getHyperlink();
if (isset($link)) {
array_push($result, ["value" => $col -> getFormattedValue(), "link" => $link, "row" => $i + 1, "col" => $j + 1]);
}
}
}
print(json_encode($result));
$service
可用于从电子表格中检索值。请注意这一点。sheets(data(rowData(values(hyperlink,formattedValue))))
作为fields
的值。您还可以将sheets
用作fields
。运行上述脚本时,将获得以下结果。
[
{
"value": "a3",
"link": "https://sample1/",
"row": 3,
"col": 1
},
{
"value": "a5",
"link": "https://sample2/",
"row": 5,
"col": 1
}
,
,
,
]
value
和link
分别是单元格值和该单元格的超链接。row
和col
分别是单元格的行号和列号。