2012-03-15 20 views
1

Spreadsheet::ParseExcelはうまく動作しますが、PMまたはCPANモジュールをインストールできないため、「Perlのまま」と言うことができます。誰かが私を始めるための提案を持っていますか?PerlでExcelファイルを読むには?

+1

[Are](http://shadow.cat/blog/matt-s-trout/but-iCant -use-cpan /)[あなた](http://www.perlmonks.org/?node=693828)[必ず](http://twiki.org/cgi-bin/view/TWiki/HowToInstallCpanModules#Setting_up_a_private_CPAN_librar)[あなたは](http://twiki.org/cgi-bin/view/TWiki/HowToInstallCpanModules#Installing_CPAN_modules_manually)[できません](http://linuxgazette.net/139/okopnik.html)[使用](http: /www.thegeekstuff.com/2008/09/how-to-install-perl-modules-manually-and-using-cpan-command/)[CPAN](http://www.activestate.com/blog/2010/) 10/how-install-cpan-modules-activeperl)? – mob

+0

完全にはっきりとしていません...パワーユーザーとリクエストが拒否されていません。 – isJustMe

+4

モジュールはrootとしてインストールすることなく使用できます。 –

答えて

5

これはファイル内のファイルシステムのようなもので、BIFFデータはシーケンシャルに格納されない可能性があります。まず、データを取得するためにパーサーを作成する必要があります。

生のBIFFデータが抽出されたら、それを解析してセルデータを見つける必要があります。これはやや簡単ですが、セルデータから離れたハッシュテーブルに文字列が格納されるなどの困難があります。普通の数字と区別がつかない日付。そして、マージされたセルのデータ。すべてがバイナリ形式であり、ビットマスクはデータ構造の意味を制御します。

幸いにも、これらの頭痛は誰か他の人に苦しんでいて、moduleで包まれているので、誰もそれらに耐えられません。

あなたの管理者があなたのためにモジュールをインストールしない場合でも、install modules、あるいはinstall perlへの方法がたくさんありますので、気にする必要はありません。結局それはおそらくより簡単な解決策になるだろう。

*一部です。

+0

Mcnamaraさん、私はあなたの仕事の巨大なファンです。モジュールのインストールを追求します。 – isJustMe

2

OpenDocument is an ISO standardですので、を読んで、独自のパーサーを作成してください。

CPANモジュールが存在するのは、人々がしたいと思う多くのもの(単純なもの、複雑なもの)がコア言語の一部になることが不適切なためです。 Excelスプレッドシートの解析は、これらのうちの1つです(より複雑なものの1つ)。

モジュールをインストールできないような障壁があれば修正してください。管理している可能性があります(ポリシーを変更するためにロビーにする必要があります)。技術的な場合があります(local::libについて学ぶ必要があります)

+0

私は探していた答えではなく、提案に感謝します。 – isJustMe

+0

申し訳ありませんが、以前のコメントでCSVへのエクスポートがオプションであることがわかりました。今私は間違っていたと思う。 –

0

スプレッドシートをCSVファイルにエクスポートし、とやText::CSVなし。CPANモジュールを使用して、比較的簡単な作業はそれらなしで実際には非常に困難である何。

エクセルバイナリデータ(BIFF)がOLE化合物と呼ばれる別のバイナリファイル形式で保存されている開始について

+0

提案してくれてありがとう、それは実際に私がやりたいことです..ファイルを読んで、それをperlを通してCSVとしてエクスポートしてください。私はこれをプログラム的に行う必要があります。 – isJustMe

+0

[XLS2CSV](http://download.cnet.com/XLS2CSV/3000-2079_4-10718456.html)をダウンロードできますか? – mob

+0

ええ私はそれのために何を使うことができますか?同様にExcelファイルをcsvとして保存してください。 – isJustMe

0

@mobからText :: CSVに関する上記の回答に基づいて構築します。ちょっと戻って私はText:CSV::SlurpをCPANで見つけ、瞬時に変換しました。ヘッダー行を含むCSVファイルを取得し、ヘッダー行の名前をキーとするhashrefのarrayrefを返します。明らかにこれはすべての場合に機能しませんが、コードが単純ならば:

my $slurp = Text::CSV::Slurp->new; 
my $data = $slurp->load(file => $filename); 
for my $record (@$data) { 
    ... 
} 
+0

ありがとう、私はCSVではなくXLSファイルを解析しなければならないということです – isJustMe

関連する問題