2016-07-30 23 views
0

GoogleスプレッドシートAPI v4のセルの数値書式を、背景色などを変更せずに更新したいとします。GoogleスプレッドシートAPI v4は何も変更せずにセル番号形式を更新します

以下のコードは、セルの数値書式を更新しますが、背景色などもリセットします。私は$fields = 'userEnteredFormat.numberFormat'; の設定は他の設定だけを残すだろうと思った。他のすべての書式設定を指定せずに、私が望むものを得る方法はありますか?

<?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

私はPHPに精通していませんが、[this](https://developers.google.com/sheets/samples/formatting)と[this](https://developers.google.com/sheets)を確認できます。/guides/formats#number_format_examples)スプレッドシートAPIのフォーマットに関するもの – KENdi

答えて

0

これは、特定のリクエストを処理する際のサービスのバグでした。それは来週いつか修正するべきです。ご迷惑おかけして申し訳ありません。

関連する問題