Search code examples
google-apps-scriptgoogle-sheets

How do I know if spreadsheet cells are merged using google apps script


In a Google docs spreadsheet. If cells A1 & A2 are merged, is there a way to confirm they are merged, using google apps script?

There is a merge function in GAS https://developers.google.com/apps-script/class_range#merge

But there is no function or example that shows how to check if cells are merged.

getValues etc just returns an empty string for the cell. e.g. this does not work.

function testMerge() {

  var spreadsheet = SpreadsheetApp.openById('Z3ppTjxNUE........'); 
  var sheet = spreadsheet.getSheets()[0];
  var range = sheet.getRange("A3:A4");
  var values = range.getValues();
  var formulas = range.getFormulasR1C1();
  var formulasA1 = range.getFormulas();

  range = sheet.getRange("A4");
  range.setValue("a");

  range = sheet.getRange("A3:A4");
  var values2 = range.getValues();
  var formulas2 = range.getFormulasR1C1();
  var formulasA12 = range.getFormulas();


  var count = range.getHeight();


}

Solution

  • range.isPartOfMerge()

    It seems the .isPartOfMerge() method was implemented (11 sept 2016).

    So you can check if a range is merged as such:

    function testMerge() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheetByName("Sheet1");
      var range = sheet.getRange(1,1,2); // example for cells A1 and A2
      Logger.log(range.isPartOfMerge());
    }
    

    Docs https://developers.google.com/apps-script/reference/spreadsheet/range#ispartofmerge