Apps脚本:需要在其中添加超链接的唯一记录从一个选项卡追加到另一选项卡

法汉

我有一个脚本来追加唯一记录。但是,当我运行脚本时,它将带有超链接的文件名转换为简单文本(删除超链接)。将记录从一个选项卡追加到另一个选项卡时,如何保留超链接的文件名?

附加唯一记录应用脚本:

function appendUniqueRows() {
  var ss = SpreadsheetApp.getActive();
  var sourceSheet = ss.getSheetByName('Tab 1');
  var destSheet = ss.getSheetByName('Tab 2');

  var sourceData = sourceSheet.getRange('W5:AC5').getValues();
  var destData = destSheet.getDataRange().getValues();

  // Check whether destination sheet is empty
  if (destData.length === 1 && "" === destData[0].join('')) {
    // Empty, so ignore the phantom row
    destData = [];
  }

  // Generate hash for comparisons
  var destHash = {};
  destData.forEach(function(row) {
    destHash[row.join('')] = true; // could be anything
  });

  // Concatentate source rows to dest rows if they satisfy a uniqueness filter
  var mergedData = destData.concat(sourceData.filter(function (row) {
    var hashedRow = row.join('');
    if (!destHash.hasOwnProperty(hashedRow)) {
      // This row is unique
      destHash[hashedRow] = true;   // Add to hash for future comparisons
      return true;                  // filter -> true
    }
    return false;                   // not unique, filter -> false
  }));

  // Check whether two data sets were the same width
  var sourceWidth = (sourceData.length > 0) ? sourceData[0].length : 0;
  var destWidth = (destData.length > 0) ? destData[0].length : 0;
  if (sourceWidth !== destWidth) {
    // Pad out all columns for the new row
    var mergedWidth = Math.max(sourceWidth,destWidth);
    for (var row=0; row<mergedData.length; row++) {
      for (var col=mergedData[row].length; col<mergedWidth; col++)
        mergedData[row].push('');
    }
  }

  // Write merged data to destination sheet
  destSheet.getRange(1, 1, mergedData.length, mergedData[0].length)
           .setValues(mergedData);
}
安塞达诺

您可以使用RTF值

例如:

function copyTextWithLink() {
  file = SpreadsheetApp.getActive();
  sheet1 = file.getSheetByName("Sheet1");
  sheet2 = file.getSheetByName("Sheet2");

  range1 = sheet1.getDataRange();
  values1 = range1.getRichTextValues();

  let output = values1.map((row) => {
    return row.map((cell) => {
      let newCell = SpreadsheetApp.newRichTextValue()
        .setText(cell.getText())
        .setLinkUrl(cell.getLinkUrl())
        .build();
      return newCell;
    });
  });

  let height = output.length
  let width = output[0].length
  
  let outputRange = sheet2.getRange(1,1,height,width)

  outputRange.setRichTextValues(output)
}

说明

  • 该脚本只是如何在Apps脚本中使用RTF功能的说明。
  • 它将值从一张纸复制到另一张纸,并保留超链接。源工作表中的所有值都是超链接。
  • 第一步是获取超链接值所在的范围,然后调用getRichTextValues它们。getValues除了返回RichTextValue对象外,其他功能与之相同
  • 接下来是将富文本值的2D数组转换为具有富文本值的另一个数组。这是多余的,因为您可以跳过此步骤,直接将setRichTextValues其复制到所有数据,包括将超链接复制到目标。包含此步骤是为了说明如何分别从富文本值数组中获取和设置文本或链接。
  • 构建富文本值涉及到使用RichTextValueBuilder
let newCell = SpreadsheetApp.newRichTextValue()
        .setText(cell.getText())
        .setLinkUrl(cell.getLinkUrl())
        .build();

参考文献

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

打开一个JQuery选项卡中另一个JQuery选项卡中存在的文档超链接?

来自分类Dev

需要在特定代码和文本之间添加一个选项卡(Notepad ++)

来自分类Dev

如何通过单击IONIC中的链接或URL从一个选项卡导航到另一个选项卡?

来自分类Dev

将数据从一个设计选项卡传递到另一选项卡

来自分类Dev

Typo3 / TCA创建新的选项卡,并在其中包含另一个选项卡的字段

来自分类Dev

Excel VLOOKUP-将需要显示从一个选项卡到另一个Excel选项卡的一列

来自分类Dev

功能类似于选项卡,但方案要追加到另一个div

来自分类Dev

jQuery UI选项卡:从选项卡中链接到下一个/特定选项卡

来自分类Dev

jQuery UI选项卡:链接到选项卡中的下一个/特定选项卡

来自分类Dev

如何从选项卡内部更改为另一个选项卡?

来自分类Dev

使用引导程序从选项卡调用另一个选项卡?

来自分类Dev

仅在一个选项卡上的操作脚本

来自分类Dev

需要将上一个/下一个切换添加到选项卡脚本

来自分类Dev

如何从一个选项卡切换到另一个选项卡Xamarin IOS

来自分类Dev

如何在PCManFM中将文件从一个选项卡快速移到另一个选项卡

来自分类Dev

如何将参数从一个选项卡传递到另一个选项卡?

来自分类Dev

当按下按钮或按键时,如何在AvalonDock中从一个选项卡转到另一个选项卡?

来自分类Dev

如何在PCManFM中将文件从一个选项卡快速移到另一个选项卡

来自分类Dev

如何通过双击表行从一个选项卡移动到另一个选项卡

来自分类Dev

Android操作栏选项卡+滑动视图分页器从一个选项卡动态导航到另一个

来自分类Dev

根据多个条件将行从一个选项卡复制到另一个选项卡

来自分类Dev

仅将非空白行从一个选项卡复制到另一个选项卡

来自分类Dev

在#vba 中使用转置将数据从一个选项卡传输(复制和粘贴)到另一个选项卡

来自分类Dev

将简单链接链接到另一个页面的选项卡

来自分类Dev

如何从另一个页面链接到特定选项卡(Telerik RadTab)

来自分类Dev

确认框不适用于指向另一个选项卡的链接

来自分类Dev

如何在另一个选项卡中打开外部链接?

来自分类Dev

单击事件在一个选项卡上触发,但在其他选项卡上不触发

来自分类Dev

Jquery - 将下一个按钮添加到选项卡

Related 相关文章

  1. 1

    打开一个JQuery选项卡中另一个JQuery选项卡中存在的文档超链接?

  2. 2

    需要在特定代码和文本之间添加一个选项卡(Notepad ++)

  3. 3

    如何通过单击IONIC中的链接或URL从一个选项卡导航到另一个选项卡?

  4. 4

    将数据从一个设计选项卡传递到另一选项卡

  5. 5

    Typo3 / TCA创建新的选项卡,并在其中包含另一个选项卡的字段

  6. 6

    Excel VLOOKUP-将需要显示从一个选项卡到另一个Excel选项卡的一列

  7. 7

    功能类似于选项卡,但方案要追加到另一个div

  8. 8

    jQuery UI选项卡:从选项卡中链接到下一个/特定选项卡

  9. 9

    jQuery UI选项卡:链接到选项卡中的下一个/特定选项卡

  10. 10

    如何从选项卡内部更改为另一个选项卡?

  11. 11

    使用引导程序从选项卡调用另一个选项卡?

  12. 12

    仅在一个选项卡上的操作脚本

  13. 13

    需要将上一个/下一个切换添加到选项卡脚本

  14. 14

    如何从一个选项卡切换到另一个选项卡Xamarin IOS

  15. 15

    如何在PCManFM中将文件从一个选项卡快速移到另一个选项卡

  16. 16

    如何将参数从一个选项卡传递到另一个选项卡?

  17. 17

    当按下按钮或按键时,如何在AvalonDock中从一个选项卡转到另一个选项卡?

  18. 18

    如何在PCManFM中将文件从一个选项卡快速移到另一个选项卡

  19. 19

    如何通过双击表行从一个选项卡移动到另一个选项卡

  20. 20

    Android操作栏选项卡+滑动视图分页器从一个选项卡动态导航到另一个

  21. 21

    根据多个条件将行从一个选项卡复制到另一个选项卡

  22. 22

    仅将非空白行从一个选项卡复制到另一个选项卡

  23. 23

    在#vba 中使用转置将数据从一个选项卡传输(复制和粘贴)到另一个选项卡

  24. 24

    将简单链接链接到另一个页面的选项卡

  25. 25

    如何从另一个页面链接到特定选项卡(Telerik RadTab)

  26. 26

    确认框不适用于指向另一个选项卡的链接

  27. 27

    如何在另一个选项卡中打开外部链接?

  28. 28

    单击事件在一个选项卡上触发,但在其他选项卡上不触发

  29. 29

    Jquery - 将下一个按钮添加到选项卡

热门标签

归档