2012-12-24 9 views

Odpowiedz

3

Spróbuj użyć ContentService, możesz uruchomić pobieranie, a nawet ustawić nazwę pliku poprzez TextOutput.downloadAsFile method. Można także ustawić typ mime treści zwróconych danych, ale tylko na predefined enum constant. Zobacz their examples.

+0

Dzięki, ale ilekroć próbuję kodu podanego w przykładzie JsonP, otrzymałem następujący komunikat: "Uncaught SyntaxError: Nieoczekiwany token <", jakikolwiek pomysł, jak go przetestować? –

+0

Dodałem nowy wątek do problemu, który istnieje w moim ostatnim komentarzu, jeśli możesz podać również w tym numerze, będzie świetnie! Możesz go znaleźć pod następującym linkiem: http://stackoverflow.com/questions/14041124/jsonp-with-google-apps-script, Thanks :) –

2

Jeśli chcesz pokazać okno dialogowe pobierania na końcu klienta, działa następujący kod. Jest to przykład dla pliku CSV.

return ContentService.createTextOutput("bbb,aaa,ccc").downloadAsFile("MyData.csv") 
    .setMimeType(ContentService.MimeType.CSV); 
+1

Nie działa dla mnie w Chrome 55.0.2883.95 (64-bit). Stworzyłem skrypt Apps dołączony do arkusza kalkulacyjnego, który zawierał powyższe funkcje. Kiedy próbuję uruchomić funkcję, widzę "Przygotowanie do wykonania", a następnie "Uruchomienie funkcji ...". Nie pojawia się okno dialogowe SaveAs i nie zapisano pliku. Co jeszcze jest potrzebne, aby działało? –

+0

To samo tutaj, nic się nie dzieje ... –

1

Aby pobrać plik z Aplikacjami scenariusza trzeba albo opublikować aplikację i użyj() metoda doGet (inaczej „downloadFileAs” nie będzie działać)

albo ...

utwórz plik na Dysku i podaj link w oknie dialogowym. tu są dwie opcje połączeń, jeden wymaga użytkownikom być zalogowany drugi nie taken from here

var dat=getFileDataFromAnotherFunction(); 
    var file = DriveApp.createFile('name.csv',dat); 
    var t = HtmlService.createTemplateFromFile('DownloadDialog'); 
    t.url1 = getDlUrl(file); 
    t.url2 = file.getDownloadUrl().replace('&gd=true','') 
    rt = t.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME); 
    uia.showModalDialog(rt,'Download the csv') 

gdzie „DownloadDialog.html”

jest następujący plik (również w edytorze skryptu)

<div> 
<a target="_blank" href="<?= url1 ?>"> l1 </a> 
<br> 
<hr> 
<a target="_blank" href="<?= url2 ?>"> link 2 </a> 
</div> 
+1

'.setSandboxMode()' nie jest już potrzebna (i myślę, że spowodowałoby to nawet zgłoszenie błędu) –