13

Estoy usando hojas de cálculo de Google para crear prototipos de datos numéricos para algo que estoy haciendo. ¿Hay alguna forma de exportar esencialmente un subconjunto a un archivo de texto? Efectivamente, lo que pretendo hacer es exportar un archivo que puedo incluir directamente en la compilación para otro proyecto.¿Puedo generar un archivo desde el script de hoja de cálculo de Google?

¿Hay alguna manera de generar un archivo de texto para descargar?

Respuesta

12

Si tiene una cuenta de Google Apps, puede usar DocsList.createFile() para crear el archivo de texto y guardarlo en su lista de documentos.

La sección 3 de este tutorial muestra cómo guardar el rango seleccionado de una hoja de cálculo como un archivo en su lista de documentos en formato CSV. Se podría modificar con bastante facilidad para guardar en un formato diferente.

+0

El servicio DocsList ya no es funcional: https://developers.google.com/apps -script/sunset –

1

Tengo los textos de mi proyecto en algunas columnas de una hoja de cálculo de Google. Tomé este script tutorial from Google y lo modifiqué para seleccionar solo un rango específico (en el siguiente ejemplo es D4: D).

Genera un archivo CSV en su carpeta raíz de Drive. Todavía no descarga el archivo. Estoy trabajando en eso ahora.

Espero que ayude!

/* El código siguiente es una modificación de este tutorial: https://developers.google.com/apps-script/articles/docslist_tutorial#section3 */

/* The code below is a modification from this tutorial: https://developers.google.com/apps-script/articles/docslist_tutorial#section3 */ 
 

 
function onOpen() { 
 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
 
    var csvMenuEntries = [{name: "Save as CSV file", functionName: "saveAsCSV"}]; 
 
    ss.addMenu("CSV", csvMenuEntries); 
 
} 
 

 
function saveAsCSV() { 
 
    
 
    // Name the file 
 
    fileName = "quests.csv"; 
 
    // Convert the range data to CSV format 
 
    var csvFile = convertRangeToCsvFile_(fileName); 
 
    // Create a file in the root of my Drive with the given name and the CSV data 
 
    DriveApp.createFile(fileName, csvFile); 
 
} 
 

 
function convertRangeToCsvFile_(csvFileName) { 
 
    // Get from the spreadsheet the range to be exported 
 
    var rangeToExport = SpreadsheetApp.getActiveSpreadsheet().getRange("D4:D"); 
 
    
 
    try { 
 
    var dataToExport = rangeToExport.getValues(); 
 
    var csvFile = undefined; 
 

 
    // Loop through the data in the range and build a string with the CSV data 
 
    if (dataToExport.length > 1) { 
 
     var csv = ""; 
 
     for (var row = 0; row < dataToExport.length; row++) { 
 
     for (var col = 0; col < dataToExport[row].length; col++) { 
 
      if (dataToExport[row][col].toString().indexOf(",") != -1) { 
 
      //dataToExport[row][col] = "\"" + dataToExport[row][col] + "\""; 
 
      dataToExport[row][col] = dataToExport[row][col]; 
 
      } 
 
     } 
 

 
     // Join each row's columns 
 
     // Add a carriage return to end of each row, except for the last one 
 
     if (row < dataToExport.length-1) { 
 
      csv += dataToExport[row].join(",") + "\r\n"; 
 
     } 
 
     else { 
 
      csv += dataToExport[row]; 
 
     } 
 
     } 
 
     csvFile = csv; 
 
    } 
 
    return csvFile; 
 
    } 
 
    catch(err) { 
 
    Logger.log(err); 
 
    Browser.msgBox(err); 
 
    } 
 
}

Cuestiones relacionadas