13

Yaptığım bir şey için bir dizi sayısal veriyi prototiplemek için google e-tabloları kullanıyorum. Bir alt kümeyi temel olarak bir metin dosyasına dışa aktarmanın bir yolu var mı? Etkili olarak, yapmayı planladığım şey, başka bir proje için doğrudan yapıya ekleyebileceğim bir dosyayı dışa aktarmaktır.Google Spreadsheets Komut Dosyası'ndan bir dosya oluşturabilir miyim?

İndirmek için bir metin dosyası oluşturmanın bir yolu var mı?

cevap

12

Bir Google Apps hesabınız varsa, metin dosyasını oluşturmak ve belge listenizde kaydetmek için DocsList.createFile()'u kullanabilirsiniz. Bu tutorial'un 3. bölümü, CSV biçiminde belgeler listenizdeki seçili aralık aralığını dosya olarak nasıl kaydedeceğinizi gösterir. Farklı bir biçimde kaydetmek için kolayca değiştirilebilir.

+0

DocsList hizmeti artık işlevseldir: https://developers.google.com/apps -Script/gün batımı –

1

Projemin metinlerini bir Google E-Tablonun bazı sütunlarında kullanıyorum. Bu script tutorial from Google'u aldım ve yalnızca belirli bir aralığı seçmek için değiştirdim (aşağıdaki örnekte D4: D'dir).

Sürücü kök klasörünüzde bir CSV dosyası oluşturur. Hala dosyayı indirmiyor - şu an üzerinde çalışıyorum.

Umut eder!

/* Aşağıdaki kod, bu öğretici bir değişiklik geçerli: 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); 
 
    } 
 
}

İlgili konular