在 Google Sheet 中更新单元格字体时保持边框

Keeping border when updating cell's font in Google Sheet

发送更改单元格字体的请求后,单元格边框出现问题。

这是我的代码:

$sheetId = "mySheetId"
$spreadSheetId = "mySpreadSheetId"
$requests = [
               new \Google_Service_Sheets_Request([
                                'repeatCell' => [
                                    'cell' => [
                                        'userEnteredFormat' => [
                                            "horizontalAlignment" => "CENTER",
                                            'textFormat' => [
                                                "foregroundColor" => [
                                                    "red" => 1
                                                ],
                                                "bold"=>true
                                            ]
                                        ]
                                    ],
                                    'range' => [
                                        'sheetId' => $sheetId,  
                                        'startRowIndex' => 11,
                                        'endRowIndex' => 13,
                                        'startColumnIndex' => 9,
                                        'endColumnIndex' => 10
                                    ],
                                    'fields' => 'userEnteredFormat'
                                ]
                            ])
                        ]; 
$batchUpdateRequest = new \Google_Service_Sheets_BatchUpdateSpreadsheetRequest([
                            'requests' => $requests
                        ]);
$response = $serviceGoogleSheet->spreadsheets->batchUpdate($spreadSheetId,
                            $batchUpdateRequest);  

这是更改前的样子

修改后,文字变成了我想要的,但边框中的一些线条消失了

有没有办法让它保持旧状态,或者我必须在我的请求中添加一些更新边框才能将其改回?

当您指定 属性 userEnteredFormat 时,它会覆盖以前存在的单元格格式

因此,如果您希望保留边框格式,则必须在请求中指定它。

样本:

$sheetId = "mySheetId"
$spreadSheetId = "mySpreadSheetId"
$requests = [
               new \Google_Service_Sheets_Request([
                                'repeatCell' => [
                                    'cell' => [
                                        'userEnteredFormat' => [
                                            "horizontalAlignment" => "CENTER",
                                            'textFormat' => [
                                                "foregroundColor" => [
                                                    "red" => 1
                                                ],
                                                "bold"=>true
                                            ],

                                           "borders" => [
                                             "bottom" => [
                                               "style" => "SOLID"
                                              ],
                                             "left" => [
                                               "style" => "SOLID"
                                              ],
                                             "right" => [
                                               "style" => "SOLID"
                                              ],
                                             "top" => [
                                               "style" => "SOLID"
                                              ]
                                            ]

                                        ]
                                    ],
                                    'range' => [
                                        'sheetId' => $sheetId,  
                                        'startRowIndex' => 11,
                                        'endRowIndex' => 13,
                                        'startColumnIndex' => 9,
                                        'endColumnIndex' => 10
                                    ],
                                    'fields' => 'userEnteredFormat'
                                ]
                            ])
                        ]; 
$batchUpdateRequest = new \Google_Service_Sheets_BatchUpdateSpreadsheetRequest([
                            'requests' => $requests
                        ]);
$response = $serviceGoogleSheet->spreadsheets->batchUpdate($spreadSheetId,
                            $batchUpdateRequest);  

根据你的情况,我认为当fields的值被修改后,你的问题可能会被移除。那么如何修改您的脚本如下?

发件人:

'fields' => 'userEnteredFormat'

收件人:

'fields' => 'userEnteredFormat.horizontalAlignment,userEnteredFormat.textFormat'

'fields' => 'userEnteredFormat(horizontalAlignment,textFormat)'

参考: