2017-11-29 24 views
1

ExcelファイルをSharepointからダウンロードし、tFileInputExcelコンポーネントの入力として使用したいと考えています。 tHttpRequestは、認証を使用してSharePointサーバーからファイルをダウンロードできる唯一のコンポーネントであるようです。tHttpRequestを使用してExcelでSharepointから認証をダウンロードする

もちろん、tHttpRequestを介してファイルをダウンロードし、ファイルに応答を書き込み、tFileInputExcelコンポーネントでそのファイルをロードします。

Example, but I don't want it like that.

例が、私はそのようにそれを望んでいません。

しかし、私は中間ファイルを必要とせず、tFileInputExcelコンポーネントの "ストリーム"機能を使用します。 tFileFetchコンポーネントを使用しますが、このコンポーネントは、認証でのSharePointからダウンロードすることができません

((java.io.InputStream)globalMap.get("what goes here? And where does it come from?")) 

Here's an example:私は何を達成しないと、Excelのコンポーネントが使用可能なストリームにダウンロードしたコンテンツを変換することです。

答えて

2

私はtHttpRequestコンポーネントを拡張し、tHttpRequestExを作成しました。これは非標準のコンポーネントを使用するには大きな欠点がある。もちろん、

((java.io.ByteArrayInputStream)globalMap.get("tHttpRequestEx_1_INPUT_STREAM")) 

I uploaded the component on exchange.talend.com.

:新しいコンポーネントがtFileInputExcelコンポーネントから読み取ることができるグローバルなマップにするByteArrayInputStreamを保存します。ファイルのダウンロードを継続し、tCreateTemporaryFileを使用してファイルの作成と削除の複雑さに対処する方がよい場合があります。

+1

:あなたはこのような入力ストリームとしてファイルを読み込むことができます。 +1はJavaコードを書くことなく簡潔で再利用可能なカスタムコンポーネントソリューションです。 (カスタムコンポーネントをインストールしたくない(またはできない)人は、上記の私の答えを参照してください)。 – iMezouar

2

あなたはこのようなByteArrayInputStreamに変換し、その後、tJavaFlex内部ByteArrayOutputStreamtHttpRequestによって返されたコンテンツを書き込むことによってそれを行うことができます。

enter image description here

必ずファイルへの応答内容を書く」のチェックを外してください"on tHttpRequest

私の例では、Excelにリンクしていないためテキストファイルをダウンロードしていますが、同じように動作します。私はそれが私の解決策のようByteArrayOutputStream使用して、コンポーネントのソースコードを見ていた

enter image description here

関連する問題