【问题标题】:Keeping border when updating cell's font in Google Sheet在 Google 表格中更新单元格字体时保持边框
【发布时间】:2021-04-07 03:37:02
【问题描述】:

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

这是我的代码:

$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);  

这是改变前的样子

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

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

【问题讨论】:

    标签: php google-sheets google-sheets-api


    【解决方案1】:

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

    发件人:

    'fields' => 'userEnteredFormat'
    

    收件人:

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

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

    参考:

    【讨论】:

      【解决方案2】:

      当您指定属性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);  
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-04
        • 2013-03-19
        • 1970-01-01
        • 1970-01-01
        • 2016-02-11
        • 1970-01-01
        相关资源
        最近更新 更多