2017-11-24 6 views
2

ユーザーがリモートサーバーAPIからドキュメントを開くことを決定できるOffice JSを使用してExcelアドインを開発しています。その場合は、サーバーAPIからファイルを受け取り、Excelで開く必要があります。Excelアドイン - デスクトップバージョンでドキュメントのダウンロードをトリガーする方法

私はすでに、この答えを見つけました:Programatically open a excel document using javascript office api

だから私はAPIがこれを許可しないことがわかり、そして答えはJSを使用して、ダウンロードをトリガ示唆しています。

は、だから私は、アドインページに iframeを追加しました:オンラインしようとしたときに完璧に動作

document.getElementById("download").src = downloadURL; 

(Office 365の):

<iframe id="download" width="1" height="1" style="display:none"></iframe> 

そして、私がやっているドキュメントのダウンロードをトリガーします。

ただし、デスクトップ版を使用してドキュメントをダウンロードしていません。

デスクトップのExcelアプリケーションでソリューションワードを作成するにはどうすればよいですか?

+0

私はお手伝いしたいと思いますが、問題は何か不明です。より多くの情報が役立ちます。あなたのアプリケーションはAPIからドキュメントをダウンロードすることになっており、APIはOffice 365にダウンロードを許可しますが、APIはExcelに[allowinsertVersion#please ..]をダウンロードすることを許可していませんか? APIはExcel固有のエラーですか?それ以上にファイルについてもっと知りたいと思っています。これは静的ファイルですか、動的生成をトリガーする必要がありますか?あなたはテストのためにURLを共有できますか?回答に応じて、私は実行可能な/回避策の解決策があるかもしれません。 ...バー、私は "潜在的な答え"を開始します – ashleedawg

答えて

1

現在、プログラムでドキュメントを作成/開くことができるようにするExcelのAPIはありません。 Word にはがあります。また、Excelの場合も同じことを行うための調査(現在調査中です)があります(https://officespdev.uservoice.com/forums/224641-feature-requests-and-feedback/suggestions/15034512-ability-to-open-replace-workbook-with-excel-js-api)。しかし、私たちがまだ共有できるETAはありません。

つまり、「名前を付けて保存」ダイアログが絶対に表示されます。実際にはScript Labを見た場合、私たちの "Export for publishing"はそれだけです。スクリプトラボのために

"Export for publishing" menu option

、我々はFileSaver NPM packageを使用しています。スクリプトラボコードを使用するビットを見たい場合はthis fileを参照し、FileSaver.saveAsを検索してください。ただし、save-asダイアログはMacまたはiOSでは正しく動作していないようですので、現時点ではこの機能をデスクトップとOffice Onlineに限定しています(その方法の冒頭にプラットフォームチェックがあります)。

希望すると便利です。

+0

ありがとう!!! 1つの警告:FileSaverは私にとってはWin7 + IE11ではうまく動作しないようですので、別の方法を使用してBlob(msSaveBlob)を保存しなければなりませんでした。 – EsPl

0

あなたがしようとしていることを理解していれば、私は潜在的な解決策があります。

最小限のコーディングでURLからファイルをダウンロードする方法の1つは、Windowsに付属のバックグラウンドインテリジェント転送サービス(BITSAdmin)ツールを使用したコマンドライン経由です。

Sub testDownloadFileFromCMD() 
    Const source_downloadURL = "http://instantpot.com/wp-content/uploads/2017/08/Cooking-Time-Tables-1.pdf" 
    Const dest_PathFilename = "C:\downloadedPDFFile.pdf" 
    Shell ("bitsadmin /transfer wcb /priority high " & source_downloadURL & " " & dest_PathFilename) 
End Sub 

これは、進行状況ウィンドウを示すが、それは、必要に応じて非表示にすることができます。

この例では、指定した場所(とファイル名)に、バックグラウンドで、調理チャートをダウンロードします。

あなたのURLはBITSで動作しますか?

でない場合、ファイルをダウンロードするには他にも多くの方法がありますが、もっと詳しい情報が必要です。 「API は、 Outlook365を許可しますが、は、 Excelがファイルをダウンロードすることを許可していません。 APIにエラーがありますか?このファイルの詳細...テキスト/バイナリですか?どんな種類のファイル。サイズが問題になるほど大きいですか?あなたはブラウザで直接のように、他の方法でファイルをダウンロードできますか?

私はこれが助けてくれることを祈っています。 :-)

関連する問題