- ベストアンサー
Perl で Excel ファイルに書き込む法
csv ファイルではなく、xls ファイルを、perl で読み 書き可能でしょうか? OS は Windows2000 です。 Win32::OLEモジュール を使えば出来そうなHPを見かけ ましたが、perl についても詳しくない為、まぶたが落ちる ほど難解でした。 できる限りシンプルな方法で実現できたらと思います。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ActivePerlを御使用なら、出来ますよ。 例えば、こんな感じでしょう。 ※マクロの知識は必須ですね。 # ---------------------------------------- use Win32::OLE; use Win32::OLE::Const 'Microsoft Excel'; my $Excel = Win32::OLE->new("Excel.Application"); $Excel->{Visible} = 1; my $Book = $Excel->Workbooks->Add; my $Sheet = $Book->Worksheets(1); my $Range = $Sheet->Range("A2:C7"); $Range->{Value} = [['Delivered', 'En route', 'To be shipped'], [504, 102, 86], [670, 150, 174], [891, 261, 201], [1274, 471, 321], [1563, 536, 241]]; my $Chart = $Excel->Charts->Add; $Chart->{ChartType} = xlAreaStacked; $Chart->SetSourceData({Source => $Range, PlotBy => xlColumns}); $Chart->{HasTitle} = 1; $Chart->ChartTitle->{Text} = "Items delivered, en route and to be shipped"; # ---------------------------------------- その他、いろいろな物が起動できます。 ActivePerlは、無料で使用できます。 URLをあげておきますね。 インストール後に、画面左下「スタート」 -> 「プログラム」 からたどれるところにヘルプ用の HTMLが入りますが、そこの、 「ActivePerl FAQ」-> 「Windows Specifics」-> 「Using OLE with Perl」 にサンプルがあります。
- 参考URL:
- http://www.activestate.com/
その他の回答 (1)
- mnabe
- ベストアンサー率33% (427/1283)
貴方が、Perl以外の言語知っていて、Windowsプログラムの経験があるのなら、 その言語で、EXCELファイルを操作するプログラムを作成して、引数としてデータを受け渡す様にすれば、簡単に出来ると思います。 その後、Perlから作成したプログラムを呼んであげればOKです。 個人的には、Windows2000を使用するのなら、IISにしてASPでオブジェクト操作する方が簡単で素敵だと思いますけどね。 .netでよければもっと楽(^^;
お礼
アドバイスありがとうございます。 ASPは最終手段として考えていました。 しかし、今回は諸事情により、CGIでなるべくいきたい ところなのです。 Spreadsheet-WriteExcel とかいうモジュールもあり ましたが、これまたインストールも満足にできません。。 Win32::OLE ともども、もう少しわかりやすいHPとか あればいいのですが・・・・
お礼
ご親切にスクリプトまで掲載していただき ありがとうございます。 利用させていただきます。