php – 当我尝试以编程方式将图表添加到Google电子表格时,api v4因网格ID而失败并显示Google_Service_Exception

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 当我尝试以编程方式将图表添加到Google电子表格时,api v4因网格ID而失败并显示Google_Service_Exception脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我玩GOOGLE sheet api v4,因为它看起来非常有趣,还可以渲染图表.我正在使用谷歌api客户端的 PHP.

首先,我创建了一个包含两张纸的新子表格,并在第一张纸上填写了数据.这按预期工作.

然后我想在第二张纸上根据第一张纸上的数据渲染图表.我想用饼图开始简单方法因为你只有一个数据系列.

我总是得到以下错误消息:

我设置的唯一ID是我已经创建的第二张表的图表单元格:

$googleSheetsSheetGrIDCoordinate = new Google_Service_Sheets_GridCoordinate();
$googleSheetsSheetGridCoordinate->setSheetId(1);
$googleSheetsSheetGridCoordinate->setColumnIndex(0);
$googleSheetsSheetGridCoordinate->setRowIndex(0);

$googleSheetsSheetOverlayPosITion = new Google_Service_Sheets_OverlayPosition();
$googleSheetsSheetOverlayPosition->setAnchorCell($googleSheetsSheetGridCoordinate);
$googleSheetsSheetOverlayPosition->setHeightPixels(500);
$googleSheetsSheetOverlayPosition->setWidthPixels(700);

看一下电子表格,有一张id为1的表格,它也有类型网格,所以我不知道这里可能出现什么问题.

更新这里是我的addChart请求的帖子正文:

{
   "requests":[
      {
         "addChart":{
            "chart":{
               "sPEc":{
                  "title":"Pie Chart","pieChart":{
                     "legendPosition":"BOTTOM_LEGEND","domain":{
                        "sourceRange":{
                           "sources":[
                              {
                                 "endRowIndex":3,"sheetId":0,"startColumnIndex":0,"startRowIndex":2
                              }
                           ]
                        }
                     },"series":{
                        "sourceRange":{
                           "sources":{
                              "endRowIndex":4,"startRowIndex":3
                           }
                        }
                     }
                  }
               },"position":{
                  "overlayPosition":{
                     "heightPixels":500,"widthPixels":700,"anchorCell":{
                        "columnIndex":0,"rowIndex":0,"sheetId":1
                     }
                  }
               }
            }
         }
      }
   ]
}

当我将它与示例进行比较时,我能找到的唯一一个涵盖添加图表,https://codelabs.developers.google.com/codelabs/sheets-api/#9,它看起来对我来说是正确的.

解决方法

好的,我找到了解决方案.
我认为sheetId是工作表的索引,但它是一个工作表创建后的ID.

所以解决方案是获得正确的ID:

$sourceId = $googleSheetsSPReadsheet->getSheets()[0]->getProperties()->getSheetId();
$targetId = $googleSheetsSpreadsheet->getSheets()[1]->getProperties()->getSheetId();

当您上传电子表格时会生成这些ID,因此,现在还不可能在一个创建请求中创建包含其图表的工作表,但您必须先创建所需的工作表,然后才能在另一个请求中添加图表.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 当我尝试以编程方式将图表添加到Google电子表格时,api v4因网格ID而失败并显示Google_Service_Exception全部内容,希望文章能够帮你解决php – 当我尝试以编程方式将图表添加到Google电子表格时,api v4因网格ID而失败并显示Google_Service_Exception所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。