首页 > 解决方案 > 我正在尝试复制条带格式或仅适用于可见数据,Google Sheets Script

问题描述

我有一个正在处理的电子表格,我正在编写一个代码来复制选择的选项卡并将它们作为值/格式粘贴到一个新的工作簿中,我可以与用户共享并允许他们编辑一些字段。我需要将数据移动到新工作表,因为我的数据表包含QUERY()我不希望用户能够破坏的功能,但我希望用户能够根据需要过滤和添加注释。我无法正常工作的最后一步是条带/交替颜色格式。他们显然没有保存为背景颜色,因此不会复制过来。

function exportToDashboard() {
  var fromSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var toSpreadsheet = SpreadsheetApp.openByUrl(
    "myURL"
  );

  var fromSheet = fromSpreadsheet.getSheetByName("Contact Summary.DASH");
  var toSheet = toSpreadsheet.getSheetByName("Contact Summary.DASH");
  var fromRange = fromSheet.getRange("A1:E");
  var values = fromRange.getValues();
 //  var banding = fromRange.getBandings();
  var colors = fromRange.getFontColors();
  var fontstyle = fromRange.getFontWeights();
  var fontsizes = fromRange.getFontSizes();
  var toRange = toSheet.getRange(1,1,values.length,values[0].length);

  toRange.clearContent();
  toRange.getBandings().forEach(function (banding) {
    banding.remove();
  });
  toRange.setValues(values);
//  toRange.applyRowBanding(SpreadsheetApp.BandingTheme.GREEN);
  toRange.setFontColors(colors);
  toRange.setFontSizes(fontsizes);
  toRange.setFontWeights(fontstyle);

我希望源带继续,但是当我尝试使用定义的变量时banding,该applyRowBanding()函数不起作用并给出错误。我可以使用applyRowBanding(SpreadsheetApp.BandingTheme.GREEN) 应用我想要的条带主题,但它适用于整个列,而不仅适用于我的数据(我希望它保留的位置)。因为交替颜色格式不存储为单元格背景颜色,所以我无法复制该格式并将其粘贴到上面。

真的,我只想复制或设置条带到我的数据。

标签: javascriptgoogle-sheets

解决方案


推荐阅读