简体   繁体   中英

need help sending values and formatting of G:M columns in google sheets as email via script

I'm trying to take all of the contents in a google sheet from columns G:M and send it as values while keeping the conditional formatting, colors and number formatting correct to an email once a week. I've tried a few variations and keep getting weird results. Does anyone have any recommendations?

Thank you.

You can create a function to copy the format to the cells

  function copyCellsFormat(source, destination) {
  var ss = SpreadsheetApp.getActive();
  
  // Get the cells
  var sourceSheet = ss.getSheetByName(source);
  var range = sourceSheet.getRange(1, 1, sourceSheet.getMaxRows(), sourceSheet.getMaxColumns());

  // The target of data formatting rules
  var destinationSheet = ss.getSheetByName(destination);
  
  range.copyFormatToRange(destinationSheet, 1, sourceSheet.getMaxColumns(), 1, sourceSheet.getMaxRows());
}

Feel free to check the documentation on https://developers.google.com/apps-script/reference/spreadsheet/range#copyFormatToRange(Sheet,Integer,Integer,Integer,Integer)

Or if you want to build the conditional formatting rules programmatically, you might want to check on https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder

// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to turn red if
// they contain a number between 1 and 10.
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("A1:B3");
var rule = SpreadsheetApp.newConditionalFormatRule()
    .whenNumberBetween(1, 10)
    .setBackground("#FF0000")
    .setRanges([range])
    .build();
var rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM