2016-07-30 4 views
0

Ich möchte das Zahlenformat von Zellen in Google Tabellen API v4 aktualisieren, ohne etwas anderes als die Hintergrundfarbe zu ändern.Google Sheets API v4 Update Cell Number Format, ohne etwas anderes zu ändern

Der folgende Code aktualisiert das Zahlenformat der Zelle, setzt aber auch Dinge wie die Hintergrundfarbe zurück. Ich dachte Einstellung $fields = 'userEnteredFormat.numberFormat'; würde die anderen Einstellungen allein lassen. Gibt es eine Möglichkeit, das zu bekommen, was ich möchte, ohne alle anderen Formatierungseinstellungen angeben zu müssen?

<?php 

require_once __DIR__ . '/../vendor/autoload.php'; 

$auth = __DIR__ . '/path-to-auth.json'; 
$creds = __DIR__ . '/path-to-creds.json'; 
$spreadsheetId = 'spreadsheet-id'; 
$sheetId = 0; 
$format = '0.0%'; 

$client = new Google_Client(); 
$client->setAuthConfig($auth); 
$token = file_get_contents($creds); 
$client->setAccessToken($token); 

$service = new Google_Service_Sheets($client); 

$numberFormat = new Google_Service_Sheets_NumberFormat(); 
$numberFormat->setType('NUMBER'); 
$numberFormat->setPattern($format); 
$cellFormat = new Google_Service_Sheets_CellFormat(); 
$cellFormat->setNumberFormat($numberFormat); 
$cellData = new Google_Service_Sheets_CellData(); 
$cellData->setUserEnteredFormat($cellFormat); 
$rowData = new Google_Service_Sheets_RowData(); 
$rowData->setValues([$cellData]); 
$rows[] = $rowData; 

$gridRange = new Google_Service_Sheets_GridRange(); 
$gridRange->setSheetId($sheetId); 
$gridRange->setStartRowIndex(0); 
$gridRange->setEndRowIndex(1); 
$gridRange->setStartColumnIndex(0); 
$gridRange->setEndColumnIndex(1); 

$fields = 'userEnteredFormat.numberFormat'; 

$updateCellsRequest = new Google_Service_Sheets_UpdateCellsRequest(); 
$updateCellsRequest->setFields($fields); 
$updateCellsRequest->setRows($rows); 
$updateCellsRequest->setRange($gridRange); 

$request = new Google_Service_Sheets_Request(); 
$request->setUpdateCells($updateCellsRequest); 
$batchUpdate = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest(); 
$batchUpdate->setRequests([$request]); 

$service->spreadsheets->batchUpdate($spreadsheetId, $batchUpdate); 

?> 
+0

Ich bin mit PHP nicht vertraut, aber Sie können [this] (https://developers.google.com/sheets/samples/formatting) und [this] (https://developers.google.com/sheets/guides/formats # number_format_examples) über das Format in der Google Tabellen-API – KENdi

Antwort

0

Dies war ein Fehler im Service bei der Bearbeitung dieser speziellen Anfrage. Es sollte irgendwann nächste Woche behoben werden. Entschuldigen Sie die Umstände.

Verwandte Themen