0

Ich habe funktionierenden Code zum Download jeder Datei in Google Docs per Link. Die meisten Dateien im XLX- oder XLSX-Format und müssen in Google Sheets konvertiert werden. Ich habe versucht, einige Methoden zu verwenden, die ich im Internet finde, aber sie arbeiten nicht für mich. Im folgenden Code kommentiere ich mit Code, den ich teste. Und ich denke, dass Google eine Dokumentation geändert hatteFügen Sie konvertieren xls zu Google Blätter Funktion zur Funktion

function downloadFile(fileURL,folder) { 

    var fileName = ""; 
    var fileSize = 0; 
    var fileId = ""; 

    var response = UrlFetchApp.fetch(fileURL, {muteHttpExceptions: true}); 
    var rc = response.getResponseCode(); 

    if (rc == 200) { 
    var fileBlob = response.getBlob() //.getAs(MimeType.GOOGLE_SHEETS) - get error 
    var folder = DriveApp.getFolderById(folder); 
    if (folder != null) { 
     var file = folder.createFile(fileBlob);//.getAs(MimeType.GOOGLE_SHEETS) - get error 
     fileName = file.getName(); 
     fileSize = file.getSize(); 
     fileId = file.getId(); 
    } 
    } 
    //file.setMimeType("application/vnd.google-apps.spreadsheet") - not work 
    //makeCopy('ssssss', folder, {convert: true}) - get error 

    var fileInfo = [ rc, fileName, fileSize, fileId ]; 
    return fileInfo; 
} 

I Funktion wie folgt aufrufen:

downloadFile("http://www.beltools.ru/prais_rar/price%20TD%20RI.xls","0B_E2P3ZhQySBY3BBMzdlazBLcTA") 

Antwort

1

Um Excel für Tabellenkalkulationsprogramm zu konvertieren, DriveApp kann es nicht tun. Also Drive API muss verwendet werden. Sie können Drive API v2 von erweiterten Google-Diensten verwenden. "Drive API v2" kann in Google Apps Script verwendet werden, indem die Drive API der erweiterten Google-Dienste und der Google API Console aktiviert wird.

Wie Sie es verwenden, ist wie folgt.

  1. im Skript-Editor, wählen Sie Ressourcen> Erweiterte Google-Dienste

  2. im angezeigten Dialogfenster klicken Sie auf den Ein-/Ausschalter für Drive API v2 erscheint.

  3. Klicken Sie unten im Dialogfeld auf den Link für die Google API-Konsole.

  4. Klicken Sie in der Konsole in das Filterfeld und geben Sie einen Teil des Namens der API "Drive API" ein und klicken Sie auf den Namen, sobald Sie ihn sehen.

  5. Klicken Sie auf dem nächsten Bildschirm auf API aktivieren.

  6. Schließen Sie die Entwicklerkonsole und kehren Sie zum Skript-Editor zurück. Klicken Sie im Dialogfeld auf OK. Der erweiterte Dienst, den Sie aktiviert haben, ist jetzt in Autocomplete verfügbar.

Die Detailinformationen sind https://developers.google.com/apps-script/guides/services/advanced.

Bei dem Beispielskript wird zunächst eine Datei von fileURL, die Excel-Datei ist, als Blob heruntergeladen. Die Blobdaten werden mithilfe der Drive API auf Google Drive hochgeladen. In diesem Fall ist ein Zugriffstoken nicht erforderlich. Für sind die Eingabedaten und Ausgabedaten identisch mit downloadFile(). Der Dateiname wird von fileURL abgerufen.

Script:

function downloadFile(fileURL, folder) { 
    var filename = fileURL.match(".+/(.+?)([\?#;].*)?$")[1]; 
    var response = UrlFetchApp.fetch(fileURL); 
    var rc = response.getResponseCode(); 
    var blob = response.getBlob(); 
    var resource = { 
    "mimeType": "application/vnd.google-apps.spreadsheet", 
    "parents": [{id: folder}], 
    "title": filename 
    }; 
    var res = Drive.Files.insert(resource, blob); 
    var fileInfo = [rc, res.title, blob.getBytes().length, res.id]; 
    return fileInfo; 
} 

Ergebnis:

[ 
    200, 
    sample.xlsx, 
    10000.0, 
    ## file id ## 
] 

Wenn ich Ihre Frage falsch verstanden, tut mir leid.

+0

Ja! Das, wonach ich gesucht habe, vielen Dank! Ich habe einfach nicht realisiert, warum Google dafür keine einfache Funktion hat. – Davagaz

+0

Willkommen. Ich bin froh, dass ich dir helfen konnte. – Tanaike

Verwandte Themen