如何使用Google表格API v4使用PHP在电子表格中创建新工作表或选项卡

时间:2017-02-19 09:46:01

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

使用PHP,我们不清楚Google Sheets API v4 documentation如何在现有电子表格中创建新工作表(又名“制表符”)。

奇怪的是,我可以通过API Explorer使用batchUpdate来完成它,但是他们没有解释如何在PHP中执行此操作。

3 个答案:

答案 0 :(得分:8)

看起来文档说我们必须使用来自$service->spreadsheets_values集合的batchUpdate。但这是不正确的。它应该是$service->spreadsheets集合。经过大量试验和错误后的正确答案是:

try {
    $body = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest(array(
        'requests' => array(
            'addSheet' => array(
                'properties' => array(
                    'title' => 'New Sheet'
                )
            )
        )
    ));
    $result1 = $service->spreadsheets->batchUpdate($sSpreadsheetID,$body);
} catch(Exception $ignore) {}

鉴于您已经对API进行了身份验证以获取$client对象,然后使用它来获取类$service的{​​{1}}对象,并且已经指定了Google_Service_Sheets 1}}到您的电子表格的ID,然后上面的例程将尝试向您的电子表格添加一个名为' New Sheet'不破坏任何现有的,如果此选项卡已存在,则不会显示错误。此时,您可以使用A1 Notation

来解决新工作表,从而为新工作表执行新操作

答案 1 :(得分:2)

这是使用Node.js客户端的方法:

    const gsapi = google.sheets({version: 'v4', auth: client})
    const options = {
      spreadsheetId: 'YOUR ID IS EVERYTHING BETWEEN /d/ and /edit on your spreadsheets URL'
    }

    const res = await gsapi.spreadsheets.batchUpdate({
      spreadsheetId: options.spreadsheetId,
      requestBody: {
        requests: [{
          addSheet: {
            properties: {
              title: table,
            }
          }
        }]
      }
    })

    console.log(res)

答案 2 :(得分:2)

看看这个

boolean