2017-11-29 4 views
1

Sharepoint에서 Excel 파일을 다운로드하고 tFileInputExcel 구성 요소의 입력으로 사용하려고합니다. tHttpRequest는 인증을 통해 SharePoint 서버에서 파일을 다운로드 할 수있는 유일한 구성 요소 인 것으로 보입니다.tHttpRequest를 사용하여 인증을 사용하여 SharePoint에서 Excel 파일 다운로드

물론 tHttpRequest를 통해 파일을 다운로드하고 응답을 파일에 쓰고 tFileInputExcel 구성 요소로 파일을로드하면됩니다.

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

예,하지만 난 그렇게하고 싶지 않아요.

그러나 중간 파일을 원하지 않고 tFileInputExcel 구성 요소의 "스트림"기능을 사용합니다. 내가 달성하지 않는 것은 엑셀 구성 요소로 사용할 수 스트림으로 다운로드 한 컨텐츠를 변환하는 것입니다 :

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

Here's an example는 tFileFetch 구성 요소를 사용하지만,이 구성 요소는 인증 셰어에서 다운로드 할 수 없습니다.

답변

2

tHttpRequest 구성 요소를 확장하고 tHttpRequestEx를 만들었습니다. 새로운 구성 요소는 tFileInputExcel 구성 요소에서 읽을 수있는 세계지도에 ByteArrayInputStream에 저장이 아닌 표준 구성 요소를 사용하는 큰 단점이있다 물론

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

I uploaded the component on exchange.talend.com.

. 파일 다운로드를 고수하고 tCreateTemporaryFile을 사용하여 파일을 만들고 삭제하는 복잡성을 처리하는 것이 더 좋은 해결책 일 수 있습니다.

enter image description here

당신이 "취소 파일에 응답 콘텐츠를 작성해야합니다 :

+1

나는 구성 요소의 소스 코드를 살펴했다, 내 솔루션처럼있는 ByteArrayOutputStream 사용합니다. +1 Java 코드를 작성하지 않고도 간결하고 재사용 가능한 사용자 정의 구성 요소 솔루션. (사용자 정의 구성 요소를 설치하고 싶지 않거나 설치할 수없는 사람들은 위의 대답을 참조하십시오). – iMezouar

2

이 같은 ByteArrayInputStream로 변환 후, tJavaFlex 내부 ByteArrayOutputStreamtHttpRequest에 의해 반환 된 컨텐츠를 작성하여 그것을 할 수 있습니다 "에 tHttpRequest.

필자는 예를 들어 엑셀로 연결되는 링크가 없기 때문에 텍스트 파일을 다운로드하지만 동일한 방식으로 작동합니다. 당신은이 같은 입력 스트림으로 파일을 읽을 수 있습니다

enter image description here