Como exportar a csv con Google Apps Script


No hace mucho os expliqué como exportar un spreadsheet a pdf  y como exportar una hoja de cálculo de Google a formato Excel (xls), lo lógico es que ahora os explique como exportar nuestro datos que tengamos en un spreadsheet a formato .csv

El código para exportar a csv es prácticamente el mismo que para exportar a xls:
function Export()
{
     var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
     var exportUrl = 'https://docs.google.com/spreadsheets/d/' + spreadsheet.getId()
                     + '/export?exportFormat=csv&format=csv';   // Para exportar a formato CSV
                 //  + '/export?exportFormat=tsv&format=tsv';   // Para exportar a TSV
 

     //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());
}

Si miráis el código veréis que simplemente descomentando lineas de código podrás exportar también a formato TSV

Como podéis ver el código es muy sencillo y los resultados son claros:

Se os ocurre algún otro formato interesante para exportar?

Quedo abierto a vuestras propuestas y dudas

Nos vemos

8 comentarios:

  1. Hola! Tengo un problema, quisiera saber si se puede exportar de diferentes hojas de cálculo a una sola, es decir como una base de datos que contenga varias hojas

    ResponderEliminar
    Respuestas
    1. No te acabo de entender muy bien, quieres decir si se pueden copiar los datos de diferentes hojas a una sola hoja?

      Eliminar
    2. Si, exacto. Ósea quiero exportar desde cada hoja de calculo (documento) que tengo a una sola.

      Eliminar
    3. Intentaré hacer un entrada sobre eso, no es complicado, ya te diré algo.

      Eliminar
    4. Vale muchas gracias. La idea es que sea desde archivos diferentes donde se pueda exportar, es decir las hojas no están en el mismo documento.

      Eliminar
    5. https://www.tutorialesgoogleappscripts.com/2020/10/como-exportar-todas-las-hojas-de-un-spreadsheet-con-google-apps-script.html Aquí tienes el exportador de todas las hojas de un spreadsheet a una sola hoja. Lo que me comentas tiene pinta de ser un proyecto algo más complejo, tal vez pueda ayudarte en forma de proyecto: https://www.tutorialesgoogleappscripts.com/p/como-contratar-mis-servicios-de.html

      Eliminar
  2. Hola amigo, resulta que cuando intento hacer la exportación por CSV no me deja hacerla en la hoja que necesito en especifico
    ¿Que se puede hacer en esos casos ?

    ResponderEliminar
    Respuestas
    1. Te podrias basar en este código: https://www.tutorialesgoogleappscripts.com/2020/10/como-generar-un-pdf-de-hojas-seleccionadas-con-google-apps-script.html y modificarlo con el contenido de este tutorial. Si no te aclaras avísame y te echo un cable, pero ya verás que es fácil.

      Eliminar

Tal vez te interese