3

現在のドキュメントを読み取る必要がある Excel でタブ ペイン アプリを開発しています。Word では、Office JavaScript API に Office.context.document.getFileAsync() メソッドがありますが、これは Excel では使用できません。

Office.context.document.getFileProperties() でドキュメントの URL を取得できるので、これでファイルを読み取れると思いました。

HTML5 FileReader() オブジェクトを使用してみましたが、これはファイル入力コントロールから選択されたファイルに対してのみ機能します。隠しファイル入力コントロールを操作して、現在のドキュメントを自動的に使用しようとしましたが、当然のことながら JavaScript により、セキュリティ上の理由からこれを行うことができなくなります。現在使用しているドキュメントを参照するようにユーザーに依頼することはできますが、それはユーザー エクスペリエンスが低下します。

そこで、ActiveXObject('Scripting.FileSystemObject') を使用してみましたが、IE の現在のセキュリティ設定に関係なく、タブ ペイン アプリでは ActiveX はまったく許可されません。

他にどのようなオプションがありますか?

4

1 に答える 1

2

API ロード マップによると、Office.context.document.getFileAsync() は現時点では Excel では使用できません。

getFilePropertiesAsync() を使用して実行できるとは思いません。URLのみを返します。通常、ブラウザは開発者がファイル システム内のコンテンツに触れることを禁止しています。したがって、JavaScript コードでローカル ファイル システムにアクセスするのは困難です。

また、ファイルがローカル ファイル システムにない可能性があります。たとえば、Onedrive または SharePoint でホストできます。getFilePropertiesAsync() は、ローカル ファイル システムではなく、Onedrive/SharePoint で実際の URL を返す必要があります。

Microsoft は将来 getFileAsync() をサポートすると思います。

于 2015-06-17T18:54:49.260 に答える