• ベストアンサー

Perl で Excel ファイルに書き込む法

csv ファイルではなく、xls ファイルを、perl で読み 書き可能でしょうか? OS は Windows2000 です。 Win32::OLEモジュール を使えば出来そうなHPを見かけ ましたが、perl についても詳しくない為、まぶたが落ちる ほど難解でした。 できる限りシンプルな方法で実現できたらと思います。

質問者が選んだベストアンサー

  • ベストアンサー
  • FRE
  • ベストアンサー率90% (10/11)
回答No.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/
yasu
質問者

お礼

ご親切にスクリプトまで掲載していただき ありがとうございます。 利用させていただきます。

その他の回答 (1)

  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.1

 貴方が、Perl以外の言語知っていて、Windowsプログラムの経験があるのなら、  その言語で、EXCELファイルを操作するプログラムを作成して、引数としてデータを受け渡す様にすれば、簡単に出来ると思います。    その後、Perlから作成したプログラムを呼んであげればOKです。  個人的には、Windows2000を使用するのなら、IISにしてASPでオブジェクト操作する方が簡単で素敵だと思いますけどね。  .netでよければもっと楽(^^;

yasu
質問者

お礼

アドバイスありがとうございます。 ASPは最終手段として考えていました。 しかし、今回は諸事情により、CGIでなるべくいきたい ところなのです。 Spreadsheet-WriteExcel とかいうモジュールもあり ましたが、これまたインストールも満足にできません。。 Win32::OLE ともども、もう少しわかりやすいHPとか あればいいのですが・・・・

関連するQ&A