2011-11-03 36 views
12

Excelを手動で開くことなく.xlsファイルからデータを取得したいと考えています。 1つの可能性は、COMオートメーションを使用することです。HaskellでExcelからデータを読み取る

パッケージcom-1.2.3hdirectパッケージがありますが、Excelでこれらのパッケージを使用する方法の例は見つかりません。

誰にでも解決策がありますか?

答えて

4

あなたのニーズが比較的単純な場合は、xlsファイルからcsvを抜き出すコマンドライン実行可能ファイルを見つけたり書き込んだりする方が簡単です。その後、あなたはhaskellからその実行可能ファイルを呼び出し、そこからの出力を続けます。

+1

私は1枚のシートで小さな仕事に同意します。しかし、時々私はいくつかのシートの間でデータを共有しています。私の現在の解決策は、ExcelのVBScriptを書くことです。しかし、今私はいくつかのアプリケーションを使用するよりもむしろhaskell exeだけを使用したいと思います。 –

+0

私が示唆しているのは、指定されたシートを指定されたExcelファイル(cmdラインで指定)からダンプする単目的の実行可能ファイルです。次に、Excelファイルとシートが解析されたすべてのデータを返すという、単一のhaskell呼び出しでそれをラップすることができます。したがって、追加の実行可能ファイルの間接参照を除いて、comの自動化のようなものです。唯一の利点は、これがどれほど簡単であるかということです。唯一の欠点は、1つではなく2つの実行可能ファイルが必要なことです(ただし、それでも直接実行する必要があります)。 – sclv

+0

ありがとうございます。あなたの提案で私は[http://www.softinterface.com/Convert-XLS/Features/Convert-XLS-To-CSV.htm]のようないくつかのcmdラインを見つけ出し、それは私に探索のための他の道を与えている。しかし、私の質問は、COMパッケージの理解の詳細です。 [http://haskell.forkio.com/com-examples]で提供されている例は、それをExcelやWordで使用するのに十分なenougthではありません。だから、誰かが分かち合うための優れたスニペットを持っているなら、それを掘り起こすのは面白いかもしれない。 –

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 私は彼らとの経験がないけど...今私の避難所が、また(OfficeオープンXMLのXLSX形式の)Hackageにxlsxあり

2

私はそれが最善の解決策だのだろうか

...まだ自分で試してみた。

関連する問題