Como exportar a Excel (.xls) con Google Apps Script

Desgraciadamente, hay muchos usuarios que no usan Google Spreadsheets sino hojas de Excel ( XLS ). Estos usuarios te exigirán que los datos que les pases estén en formato XLS, no querrán un link a un google spreadsheet ni usar Google Apps Script y generalmente, no será fácil hacerles cambiar de opinión.

Para estas ocasiones nos puede resultar extremadamente útil poder exportar a formato XLS nuestras hojas de cálculo mediante Google Apps Script de una forma rápida y sencilla.

El código para poder realizar esta exportación se basa en el mismo principio que usamos para exportar PDF. Haremos una petición a un servicio de Google que nos permite exportar a diferentes formatos nuestras hojas de cálculo de Drive.

function Export()
{
     var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
     var exportUrl = 'https://docs.google.com/spreadsheets/d/' + spreadsheet.getId()
        + '/export?exportFormat=xlsx&format=xlsx';     // Para exportar a formato XLS
        //  + '/export?exportFormat=ods&format=ods';   // Para exportar a ODS
   
     //Hacemos la petición para pedir el fichero exportado
     var response = UrlFetchApp.fetch(exportUrl, {  muteHttpExceptions: true, headers: { Authorization: 'Bearer ' +  ScriptApp.getOAuthToken()  } } );
 
     //Creamos el fichero con el binario que nos devuelve la petición anterior
     var blob = response.getBlob();
     blob = blob.setName(spreadsheet.getName());
     var exportedFile = DriveApp.createFile(blob);
     SpreadsheetApp.getUi().alert(exportedFile.getUrl());
}

Como veréis tenéis el código para poder exportar a formato Excel(xls) y a formato OpenOffice (ods), con solo descomentar la linea que os interese tendréis suficiente.

La conversión puede tardar un rato, dado que el proceso interno de conversión puede ser bastante costoso, así que tranquilos si se demora un poco el proceso.

No vaciléis en hacerme llegar vuestras dudas

Nos vemos!

3 comentarios:

  1. Hola, muchas gracias me funciona el scrip pero en mi caso necesito que remplace el archivo creado anterior mente.

    ResponderEliminar
    Respuestas
    1. Hola, Lo mejor que puedes hacer es borrar el fichero que anteriormente se ha creado. Te dejo el link que te explica como borrar ficheros y carpetas con Google Apps Script: https://www.tutorialesgoogleappscripts.com/2020/11/como-borrar-ficheros-y-carpetas-con-google-apps-script.html

      Eliminar
  2. Muchísimas gracias lo intentare a ver como me va.

    ResponderEliminar

Tal vez te interese