首页 > 解决方案 > Google 表格 API:读取单元格公式

问题描述

我正在使用“Google_Service_Sheets”API 从谷歌电子表格中读取值,下面是示例代码。

$range = 'SHEET_NAME!A1:A5';
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();
if (empty($values)) {
  print 'No data found.\n';
} else {
  foreach ($values as $row) {
     for ($i = 0; $i < sizeof($row); $i++) {
         echo $row[$i].'\n';
     }
  }
}

电子表格中的值存储为 Round 而不是带有十进制的数字格式,即 42 而不是 41.5(此单元格的公式是:fx:30+ 11.5) 上面的代码给了我来自单元格的值,即 42,但我想获取 fx 值这是 30 + 11.5 即 41.5。

请建议。

标签: google-apps-scriptgoogle-sheetsgoogle-sheets-api

解决方案


您可以valueRenderOption与参数一起使用FORMULA,请参见此处

随后,您可以从公式中提取原始值并根据需要进行操作。

样本:

$range = 'SHEET_NAME!A1:A5';
$options = [
    'valueRenderOption' => 'FORMULA'
];
$response = $service->spreadsheets_values->get($spreadsheetId, $range, $options);
$values = $response->getValues();
}

推荐阅读