2

私が目指しているのは、File > Download as > *現在 Google スプレッドシートにある機能に似たものを書くことですが、それをカスタム形式にしたいと考えています。

具体的には、会計ソフトウェアにインポートするために、金融取引のスプレッドシートを QIF または OFX ファイルに変換したいと考えています。基本的に、UI のボタンを押すと、現在開いているスプレッドシートの QIF/OFX バージョンがダウンロードされます。

これまでに次のことを試しました。

  • を使用してカスタム ファイルを作成し、それを を使用してダウンロードとして返すサービスを ( の実装を介してdoGet)公開します。これは、ブラウザを使用してエンドポイントを直接呼び出すと機能します。ContentServiceTextOutput.downloadAsFile()
  • window.location を介してブラウザをサービスの URL にリダイレクトしようとしましたが、App Script のコンテキストでは利用できないようです。
  • フロントエンド (スプレッドシート) を使用UrlFetchApp.fetchして、ブラウザーにサービスの URL に移動させようとしました。これもうまくいきませんでした(驚くべきことではありません)。

それで、これはここで正しいアプローチですか?他にどのように攻撃できますか?

4

1 に答える 1

2

これがあなたがしなければならないことのようです。

  1. UiApp を作成する
  2. そのアプリ内にダウンロードへのリンクを追加します。
  3. スプレッドシートに UiInstance を表示する

少しかさばりますが、最もクリーンなソリューションのようです。

function downloadAsWhatever() {
  var app = UiApp.createApplication();
  app.add(app.createAnchor("Download the file now!", "https://script.google.com/macros/s/[...]/exec"))
  SpreadsheetApp.getActiveSpreadsheet().show(app.setWidth(300).setHeight(150));
}

アプリのサイズを好きなように設定できます。スプレッドシート画面で占有するスペースが少なくなるように、小さく設定することにしました。


今のところ、ユーザーを新しいページに誘導する最善の方法は、アンカー ウィジェットを作成してクリックさせることです。これが理想的なユーザー エクスペリエンスではないことは理解していますが、必須のユース ケースには十分です。

ソース

于 2013-02-19T20:55:15.287 に答える