php – 当我尝试以编程方式将图表添加到Google电子表格时,api v4
发布时间:2020-12-13 17:01:29 所属栏目:PHP教程 来源:网络整理
导读:我玩google sheet api v4,因为它看起来非常有趣,还可以渲染图表.我正在使用谷歌api客户端的 PHP. 首先,我创建了一个包含两张纸的新电子表格,并在第一张纸上填写了数据.这按预期工作. 然后我想在第二张纸上根据第一张纸上的数据渲染图表.我想用饼图开始简单的
我玩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,因此,现在还不可能在一个创建请求中创建包含其图表的工作表,但您必须先创建所需的工作表,然后才能在另一个请求中添加图表. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |