Creating Spreadsheet with Custom Header and Footer using Google Apps Script

Gists

In order to print and export as PDF file, this is a sample script for converting Spreadsheet to Spreadsheet which has the custom header and footer.

In this sample script, DocsServiceApp, which is Google Apps Script library, is used. And, in this case, the Spreadsheet with the custom header and footer is created as new Spreadsheet.

Before you use this script, please install DocsServiceApp and enable Drive API at Advanced Google services.

Sample script:

Please put this script to the container-bound script of Spreadsheet you want to use.

function myFunction() {
  // Source Spreadsheet.
  const srcSS = SpreadsheetApp.getActiveSpreadsheet();
  const copiedSheets = srcSS.getSheets().map((s) => {
    const srcName = s.getSheetName();
    const cs = s.copyTo(srcSS).setName("temp_" + srcName);
    const cr = cs.getDataRange();
    cr.copyTo(cr, { contentsOnly: true });
    return cs;
  });

  // Destination Spreadsheet as temporal.
  const object = {
    title: "newSpreadsheet",
    header: { l: "left header", c: "center header", r: "right header" },
    footer: { l: "left footer", c: "center footer", r: "right footer" },
  };
  const dstSpreadsheetId = DocsServiceApp.createNewSpreadsheetWithCustomHeaderFooter(
    object
  );
  const dstSS = SpreadsheetApp.openById(dstSpreadsheetId);
  const topSheet = dstSS.getSheets()[0].setName(Utilities.getUuid());
  copiedSheets.forEach((s) => {
    const srcName = s.getSheetName().slice(5);
    const src = s.copyTo(dstSS);
    const dst = topSheet.copyTo(dstSS).setName(srcName);
    src.getDataRange().copyTo(dst.getDataRange());
    srcSS.deleteSheet(s);
    dstSS.deleteSheet(src);
  });
  dstSS.deleteSheet(dstSS.getSheets()[0]);
}

IMPORTANT

 Share!