首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >sheet.range().getRichTextValue()即使正确设置也返回null

sheet.range().getRichTextValue()即使正确设置也返回null
EN

Stack Overflow用户
提问于 2022-09-27 02:18:06
回答 1查看 81关注 0票数 0

我对电子表格中的富文本值有问题。下面的代码设置单元格中的富文本值( URL),但获取富文本值返回null。这个问题似乎与富文本值文本是数字文本的事实有关。

代码语言:javascript
运行
复制
function SheetEdit(e) {
  let sheet = e.source.getActiveSheet();
  let row = e.range.getRow();
  let col = e.range.getColumn();
  let year = 2022;
  // The following getRichTextValue() returns correctly. Its text value is non-numeric.
  let folderId = sheet.getRange(row,1).getRichTextValue().getLinkUrl().split('/')[5];
  let folder = DriveApp.getFolderById(folderId);
  let filelist = folder.getFilesByName(fileName);
  if (filelist.hasNext()==true) {
    let file = filelist.next();
    let url = file.getUrl().split('?')[0]; // remove URL parameters
    // The following setRichTextValue() correctly sets the value in the spreadsheet.
    // Its text value (year) is numeric.
    let richText = SpreadsheetApp.newRichTextValue().setText(String(year)).setLinkUrl(url).build();
    sheet.getRange(row,col).setRichTextValue(richText);
    // However, the following getRichTextValue() returns null
    Logger.log(sheet.getRange(row,col).getRichTextValue().getText());
    Logger.log(sheet.getRange(row,col).getRichTextValue().getLinkUrl());
  }
}
EN

回答 1

Stack Overflow用户

发布于 2022-09-27 03:13:10

这似乎是一个已知问题。解决这个问题的一种方法就是改变

代码语言:javascript
运行
复制
SpreadsheetApp.newRichTextValue().setText(String(year))

代码语言:javascript
运行
复制
SpreadsheetApp.newRichTextValue().setText("'"+year) 

这将导致电子表格将年份(数字)解释/显示为文本(没有前面的'),而不是数字。当你打电话的时候

代码语言:javascript
运行
复制
sheet.getRange(row,col).getRichTextValue().getText()

您将得到预期的2022

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73861707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档