2011-11-03 6 views
12

Excel을 수동으로 열지 않고 .xls 파일에서 데이터를 가져오고 싶습니다. 한 가지 가능성은 COM 자동화를 사용하는 것입니다.하스켈의 Excel에서 데이터 읽기

com-1.2.3hdirect 패키지가 있지만 이러한 패키지를 Excel에서 사용하는 방법에 대한 예는 찾을 수 없습니다.

누구에게도 해결책이 있습니까?

답변

4

이와 같이 사용자의 요구가 비교적 간단하다면 xls 파일에서 csv를 추출하는 명령 줄 실행 파일을 찾고/작성하는 것이 더 간단하다는 것을 알았습니다. 그런 다음 당신은 haskell에서 그 실행 파일을 호출하고 그곳에서 출력을 진행합니다.

+1

1 장만으로 작은 작업에 동의합니다. 하지만 때로는 여러 장의 데이터를 공유합니다. 내 현재 솔루션은 Excel vbscript를 작성하는 것입니다. 하지만 지금은 여러 응용 프로그램을 사용하는 것보다 단지 haskell exe를 사용하고 싶습니다. –

+0

필자가 제안하는 것은 주어진 엑셀 파일 (지정된 cmd 행에 지정된 시트)에서 지정된 시트를 덤프하는 단일 목적 실행 파일입니다. 그런 다음 하나의 haskell 호출에서이를 요약 할 수 있습니다.이 호출에서는 Excel 파일과 시트가 파싱 된 모든 데이터를 반환합니다. 따라서 추가 실행 파일의 간접 참조를 통하지 않고 com 자동화를 사용하는 것과 같습니다. 유일한 이점은 이것이 얼마나 더 간단한가하는 것입니다. 단 하나의 단점은 이제 하나가 아닌 두 개의 실행 파일이 필요하다는 것입니다 (그러나 여전히 직접 실행 만하면됩니다). – sclv

+0

감사합니다. 귀하의 제안으로 나는 [http://www.softinterface.com/Convert-XLS/Features/Convert-XLS-To-CSV.htm]과 같은 몇 가지 cmd line을 발견했으며, 다른 경로를 탐색 할 수있게되었습니다. 하지만 제 질문은 COM 패키지에 대한 이해입니다. [http://haskell.forkio.com/com-examples]에서 제공되는 예제는 Excel 또는 Word에서 사용하기에 충분하지 않습니다. 따라서 누군가가 공유 할 수있는 발췌 문장을 가지고 있다면 그 발굴에 흥미로울 수 있습니다. –

3

Ruby에서는 rjb (ruby java bridge)를 사용하고 Java 용 라이브러리를 Excel 용으로 사용합니다 (예 : http://www.slideshare.net/weyus/rjb에서 설명한 JExcelAPI).

하스켈을위한 몇 가지 Java 브리지가있는 것 같습니다. http://www.haskell.org/haskellwiki/Applications_and_libraries/Interfacing_other_languages#Java 내가 그들과 경험이 없지만 ... 지금 천국 있지만, 또한합니다 (오피스 오픈 XML의 XLSX 형식) Hackage에 xlsx

2

나는 그것이 최선의 해결책인지 궁금

... 아직 나 자신을 시도하지 않았다.

관련 문제