我正在使用 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);
}
从脚本中的
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
以适合您的情况。