Google Sheets API - 加粗并突出显示文本

问题描述 投票:0回答:1

我正在使用 Google Sheet API。我的代码按预期工作。但现在,我想添加一些粗体、突出显示等。我已经查看了其他代码片段,但我不完全理解如何做到这一点。谢谢!!

$service = new \Google_Service_Sheets($client);
$spreadsheetId = 'xxxxxxx';
$spreadsheet = $service -> spreadsheets -> get($spreadsheetId);
$result = $db -> query("SELECT * from xxxxxx");
$oldref = '1';
if ($result -> num_rows > 0) {
  $rows = array();
  $i = 0;
  while ($row = $result -> fetch_assoc()) {
    $i++;
    if ($oldref != $row['refnumber']) {
  ///////////////////////////////////////////////////
 ////this is where I want to BOLD the $row['refnumber'] value.//////       
 $newRow = [$row['refnumber']];
  array_push($rows, $newRow);       
    }
  
  }
  $valueRange = new \Google_Service_Sheets_ValueRange();
  $valueRange -> setValues($rows);
  $range = 'Sheet1';
  $options = ['valueInputOption' => 'USER_ENTERED'];
  $service -> spreadsheets_values -> update($spreadsheetId, $range, $valueRange, $options);

}
php google-sheets google-api google-sheets-api
1个回答
0
投票

从脚本中的

this is where I want to BOLD the $row['refnumber'] value.
来看,我猜你想将
$rows
的所有值设置为粗体。既然如此,下面的修改如何?

为了更改单元格的文本格式,使用“方法:spreadsheets.batchUpdate”。

修改后的脚本:

在使用此脚本之前,请先设置

$sheetId
。在您的脚本中,从
$range = 'Sheet1';
开始,工作表 ID 是“Sheet1”的工作表 ID。

来自:

$service -> spreadsheets_values -> update($spreadsheetId, $range, $valueRange, $options);

致:

$service -> spreadsheets_values -> update($spreadsheetId, $range, $valueRange, $options);

// --- I added the below script.
$sheetId = 0; // Please set your sheet ID.
$startRow = 0;
$rowLength = count($rows);
$colLength = count($rows[0]);
$requests = [new \Google\Service\Sheets\Request([
    "repeatCell" => [
        "cell" => ["userEnteredFormat" => ["textFormat" => ["bold" => true]]],
        "range" => [
            "sheetId" => $sheetId,
            "startRowIndex" => $startRow,
            "endRowIndex" => $startRow + $rowLength,
            "startColumnIndex" => 0,
            "endColumnIndex" => $colLength,
        ],
        "fields" => "userEnteredFormat",
    ],
])];
$req = new \Google\Service\Sheets\BatchUpdateSpreadsheetRequest(["requests" => $requests]);
$service->spreadsheets->batchUpdate($spreadsheetId, $req);
  • 运行此脚本时,从第 1 行到

    $rows
    长度的单元格中的值将设置为粗体类型。从您的显示脚本中,
    $rows
    的所有单元格值都设置为粗体类型。如果您想将其设置为特定单元格值,请修改上面的请求正文。

  • 对于您的脚本

    $service -> spreadsheets_values -> update($spreadsheetId, $range, $valueRange, $options);
    $range = 'Sheet1';
    ,值从“A1”输入。所以,我使用了这个修改后的脚本。

  • 如果您想更改起始行以设置粗体,请修改

    $startRow
    以适合您的情况。

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.