Добавьте еще 1000 строк в лист Google через API в PHP

У меня есть функция добавления в электронную таблицу, она берет данные и вставляет их в свой лист.

 private function _addToSheet($data, $cites)
    {
        $resultList = array_values($data);


        // Path to the credentials JSON file
        $credentialsPath = storage_path('secret.json');

        // Initialize the Google Client
        $client = new Google_Client();
        $client->setApplicationName('Website Scrapping');
        $client->setScopes([Google_Service_Sheets::SPREADSHEETS]);
        $client->setAuthConfig($credentialsPath);
        $client->setAccessType('offline');

        // Create a Sheets service
        $sheetsService = new Google_Service_Sheets($client);

        $spreadsheetId = '******';

        // Get the existing data to determine the next empty row
        $currentData = $sheetsService->spreadsheets_values->get($spreadsheetId, 'Sheet1!A:A');
        if (!$currentData->getValues){
            $currentData->getValues = 0;
        }
        $nextRow = count($currentData->getValues()) + 1;


        // Specify the range for the next empty row
        $range = 'Sheet1!A' . $nextRow . ':M' . $nextRow;

        // Data to update in the Google Sheets
        $time = date('d-m-Y H:i:s');
        array_unshift($resultList, $time);
        $updateBody = new Google_Service_Sheets_ValueRange([
            'values' => [$resultList]
        ]);

        // Perform the update
        $result = $sheetsService->spreadsheets_values->update(
            $spreadsheetId,
            $range,
            $updateBody,
            ['valueInputOption' => 'RAW']
        );
    }

но я получаю ошибку: Range (Sheet1!A901:M901) exceeds grid limits. Max rows: 900, max columns: 26

когда я захожу в графический интерфейс, я обнаруживаю, что мне нужно вручную добавить больше столбцов.

У меня есть много листов, с которыми я взаимодействую через API, для меня не является решением добавлять строки вручную, есть ли программный способ реализации с использованием API в PHP.

кнопка добавить больше строк

я попробовал это, но получаю ту же ошибку Range (Sheet1!A901:M1900) exceeds grid limits. Max rows: 900, max columns: 26

$currentData = $sheetsService->spreadsheets->get($spreadsheetId);
        $currentRowCount = $currentData->sheets[0]->properties->gridProperties->rowCount;
        
        // Check if the current row count is a multiple of 900
        if ($currentRowCount % 900 === 0) {
            // Increase the row count by 1000
            $dimensionRangeRequest = new Google_Service_Sheets_DimensionRange([
                'sheetId' => $currentData->sheets[0]->properties->sheetId,
                'dimension' => 'ROWS',
                'startIndex' => $currentRowCount-1,
                'endIndex' => $currentRowCount + 1000,
            ]);
            
            $batchUpdateRequest = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest([
                'requests' => [$dimensionRangeRequest ],
            ]);
            
            $sheetsService->spreadsheets->batchUpdate($spreadsheetId, $batchUpdateRequest);
        }
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
85
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ох, у меня был неправильный синтаксис: вот правильный способ сделать это.

if ($currentRowCount % 900 === 0) {
   // Increase the row count by 1000
   $dimensionRangeRequest =
      [
      new Google_Service_Sheets_Request([
      'appendDimension' => [
         'sheetId' => 0,
         'dimension' => 'ROWS',
         'length' => 1000,
         ]
      )]
   ];

   $batchUpdateRequest = Google_Service_Sheets_BatchUpdateSpreadsheetRequest(['requests' =>$dimensionRangeRequest]);

   $sheetsService->spreadsheets->batchUpdate($spreadsheetId, 
   $batchUpdateRequest);
}

Другие вопросы по теме