google-apps-script - 将带有粗体部分的特定范围复制到另一个电子表格上的特定范围,同时保留粗体部分

标签 google-apps-script google-sheets

我有什么

在 Google 电子表格上,我有一个范围 (A1:B1),如下所示:

电子表格A |表1

<表类=“s-表”> <标题> 一个 B <正文> 1 Hello world,此文本加粗,而其余文本则不是 一些文字

我想要什么

我想将文本复制到单独的 Google 电子表格中的范围 (D3:E3) 中,因此它将具有相同的文本相同的粗体部分,如下所示:

电子表格B |表2

<表类=“s-表”> <标题> D E <正文> 3 Hello world,此文本加粗,而其余文本则不是 一些文字

我现在拥有的

我目前正在使用.setValues()这会导致仅复制纯文本(因为 .copyTo() 只能在同一个电子表格中使用),如下所示:

电子表格B |表2

<表类=“s-表”> <标题> D E <正文> 3 Hello world,这段文字是粗体,其余的不是 一些文字

引用(简化)代码:

function syncToSpreadsheetB(sheet1) { // found under spreadSheetA
  var spreadSheetB = SpreadsheetApp.openById('spreadSheetB_id');
  var sheet2 = spreadSheetB.getSheetByName('sheet2');

  if (sheet2 === null) return;

  sheet2.getRange(3,4,1,2).setValues(sheet1.getRange(1,1,1,2).getValues());
}

我知道有RichTextValue类,但不确定如何使用它来满足我的需要。

最佳答案

根据您的情况,使用 RichTextValue 怎么样?这一点在你的问题中也已经提到了。那么,下面的示例脚本怎么样?

示例脚本:

function myFunction() {
  var spreadsheetA = SpreadsheetApp.openById('###');
  var sheet1 = spreadsheetA.getSheetByName("Sheet1");
  var srcRange = sheet1.getRange(1,1,1,2); // This range is from your script.
  var srcRichTextValues = srcRange.getRichTextValues();

  var spreadSheetB = SpreadsheetApp.openById('spreadSheetB_id');
  var sheet2 = spreadSheetB.getSheetByName('sheet2');
  sheet2.getRange(3,4,1,2).setRichTextValues(srcRichTextValues); // This range is from your script.
}

引用文献:

关于google-apps-script - 将带有粗体部分的特定范围复制到另一个电子表格上的特定范围,同时保留粗体部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69722328/

相关文章:

javascript - 关闭侧边栏然后处理表单提交

javascript - 每次我打开工作表时函数都会重新计算,我只希望它在编辑时重新计算

google-sheets - 带有 IMPORTRANGE 的数组公式

c# - 在 C# 中获取 Google Sheets API v4 中的最后一列

javascript - 如果方法返回一组值,如何使用单个返回值

google-apps-script - 如何从电子表格加载特定工作表

gmail - Gmail+Google Apps 脚本的最大发送速率和每日配额?

google-apps-script - 自动调整 Google 表格中的列大小

json - 地理编码城市+州,因为它们会定期添加到谷歌表格中?

javascript - 仅提取新日期的时间