Google sheets TextRotation角度从未在Google Sheet API中设置
我使用的是来自Java客户端的GoogleSheetsAPIV4。我正在尝试从Cell类获取格式。一切顺利 文本旋转 我成功地获得了垂直属性集,但是,角度属性从未设置,无论我在源Google Sheets文档中设置了什么 无论在Google Sheet应用程序中选择了什么角度值,角度属性都不会设置。Google sheets TextRotation角度从未在Google Sheet API中设置,google-sheets,google-api,google-sheets-api,google-api-java-client,Google Sheets,Google Api,Google Sheets Api,Google Api Java Client,我使用的是来自Java客户端的GoogleSheetsAPIV4。我正在尝试从Cell类获取格式。一切顺利 文本旋转 我成功地获得了垂直属性集,但是,角度属性从未设置,无论我在源Google Sheets文档中设置了什么 无论在Google Sheet应用程序中选择了什么角度值,角度属性都不会设置。 我尝试检查返回的JSON,以了解问题是否在Java客户端中。 但JSON REST API也从不返回此属性 当前结果: . 预期结果: 问题和解决方法: 当我看到时,我认为textRotation
我尝试检查返回的JSON,以了解问题是否在Java客户端中。
但JSON REST API也从不返回此属性 当前结果:
.
预期结果:
问题和解决方法: 当我看到时,我认为
textRotation
的值可以通过sheets(data(rowData)(values(userEnteredFormat(textRotation)))
的字段检索,当使用“spreadsheets.get”方法时。但是当我测试这个时,没有返回任何值。所以我想这可能是个bug。当我在谷歌问题追踪器上搜索时,我发现。从这种情况来看,在当前阶段,似乎无法通过Sheets API的“spreadsheets.get”方法检索textRotation
的值
当您想要使用脚本检索textRotation
的值时,作为当前的解决方法,您可以使用Google Apps脚本创建的Web应用作为包装器来实现。在这个答复中,我想提出解决办法
当此变通方法反映到针对您的情况的流程中时,它将变成如下所示
用法:
1.创建谷歌应用程序脚本的新项目。
Web应用程序的示例脚本是Google应用程序脚本。因此,请创建一个谷歌应用程序脚本项目
如果要直接创建,请访问。在这种情况下,如果您没有登录Google,则会打开登录屏幕。所以请登录谷歌。这样,谷歌应用程序脚本的脚本编辑器就打开了
2.准备Web应用程序。(服务器端)
请将以下脚本(Google Apps脚本)复制并粘贴到脚本编辑器。此脚本用于Web应用程序。此Web应用程序用作API
服务器端:谷歌应用程序脚本
function doGet(e) {
const key = "sampleKey";
const id = e.parameter.spreadsheetId;
const sheetName = e.parameter.sheetName;
if (e.parameter.key != key || !id || !sheetName) {
return ContentService.createTextOutput(JSON.stringify({message: "Error."})).setMimeType(ContentService.MimeType.JSON);
}
const sheet = SpreadsheetApp.openById(id).getSheetByName(sheetName);
const textRotations = sheet.getDataRange().getTextRotations().map(r => r.map(c => ({angle: c.getDegrees(), vertical: c.isVertical()})));
return ContentService.createTextOutput(JSON.stringify(textRotations)).setMimeType(ContentService.MimeType.JSON);
}
3.部署Web应用程序。
- 这样,脚本将作为所有者运行
- 当然,您可以在这种情况下使用访问令牌。但在本例中,作为一个简单的设置,我使用访问密钥而不是访问令牌
https://script.google.com/macros/s/###/exec
。
- 当您修改Google Apps脚本时,请重新部署为新版本。这样,修改后的脚本将反映到Web应用程序中。请注意这一点。
$ curl -L "https://script.google.com/macros/s/###/exec?spreadsheetId=###&sheetName=Sheet1&key=sampleKey"
[
[{"angle":30,"vertical":false},{"angle":0,"vertical":true},{"angle":0,"vertical":false}],
[{"angle":30,"vertical":false},{"angle":30,"vertical":false},{"angle":0,"vertical":false}]
]
结果:
数据范围用于检索值。例如,当值设置为“Sheet1”中的单元格“A1:C3”时,将返回以下结果
$ curl -L "https://script.google.com/macros/s/###/exec?spreadsheetId=###&sheetName=Sheet1&key=sampleKey"
[
[{"angle":30,"vertical":false},{"angle":0,"vertical":true},{"angle":0,"vertical":false}],
[{"angle":30,"vertical":false},{"angle":30,"vertical":false},{"angle":0,"vertical":false}]
]
- 在这种情况下,单元格“A1、A2、B2”的文本旋转为30度。并且,单元“B1”具有垂直方向
- 修改Web应用脚本时,请将Web应用重新部署为新版本。这样,最新的脚本就会反映到Web应用程序中。请注意这一点。