无法隐藏网格线 Google 电子表格 API PHP

Cannot hide gridlines Google Spreadsheet API PHP

我正在尝试隐藏我刚刚使用 Google 工作表 API 创建的文件中的所有网格线,我正在使用以下代码:

$service = $this->GoogleServiceSheets();
$sheetID = null;
$worksheetSheets = $service->spreadsheets->get($fileID)->sheets;
foreach($worksheetSheets as $sheet){ 
    $sheetID = $sheet->properties['sheetId'];     
    break;
}
$service = $this->GoogleServiceSheets(); 

$requests = [
    new \Google_Service_Sheets_Request([
        'updateDimensionProperties' => [
            'range'=> new \Google_Service_Sheets_DimensionRange([
                'sheetId' => $sheetID,
                'dimension' => 'COLUMNS',
                'startIndex' => 0,
                'endIndex' => 1000        
            ]),
            'properties'=> new Google_Service_Sheets_DimensionProperties([
                "hideGridlines"=> True,                 
            ]),
            'fields' => 'hideGridlines'
        ]
    ])
];



$batchUpdateRequest = new \Google_Service_Sheets_BatchUpdateSpreadsheetRequest(['requests' => $requests]);
$service->spreadsheets->batchUpdate($fileID, $batchUpdateRequest);   

但是没有隐藏,反而报错。 我做错了什么?

为了隐藏Google Spreadsheet with Sheets API的网格线,使用了batchUpdate的UpdateSheetPropertiesRequest。不幸的是,updateDimensionProperties 无法做到这一点。我认为这就是你的问题的原因。为了达到你的目的,当你的脚本修改后,变成如下。

修改后的脚本:

本次修改,你的$requests修改如下

$requests = [
    new \Google_Service_Sheets_Request([
        'updateSheetProperties' => [
            'properties' => [
                'sheetId' => $sheetID,
                'gridProperties' => [
                    'hideGridlines' => true
                ],
            ],
            'fields' => 'gridProperties.hideGridlines'
        ],
    ])
];

注:

  • 在此修改中,假设您的 $service = $this->GoogleServiceSheets();$sheetID 是有效值。而且,它假设您已经能够使用 Sheets API 获取和放置 Google 电子表格的值。请注意这一点。

参考: