« グリッドクリック時の振る舞い | メイン | フォームの切り替え »
November 29, 2004
perlからExcelを使う
use Cwd;
use Win32::OLE;
use Win32::OLE::Variant;
Win32::OLE->Initialize();
$XL = Win32::OLE->new('Excel.Application', \&OleQuit) or die "oops\n"; #Excelのインスタンスを得る 2番目の引数の関数が終了時に呼ばれる
$XL->{Visible} = 0; #Excelを非表示で起動
$Books = $XL->Workbooks; #ExcelからWorkbooksを得る
$Books->Open( cwd . '/' . 'ModuleTest.xls'); #オープン時フルパスで指定しないと開けない
if( Win32::OLE->LastError() ) {
print "ファイルオープン時にエラーが発生しました。\n";
exit(1);
}
$Sheet = $XL->Worksheets->Item('Sheet1'); #指定した名前のシートを得る
$cellVal = $Sheet->Cells( 1, 2 )->{Value}; #指定したセルの値を得る
print $cellVal."\n";
Win32::OLE->Uninitialize();
#############################################################################
#終了時に呼ばれるっぽい
sub OleQuit {
my $self = shift;
$self->Quit; # $XL->Quit;が呼ばれている。これを呼ばないとExcelのプロセスが残ったままになってしまう。非表示で使っているときはタスクマネージャで終了させないといけない。。。
}
------
ってな感じで使う。
でも、perlを実行する環境にExcelがインストールされていないと使えない。
C++からの場合も似たような方法で出来るが、いろいろと面倒臭い。
C++からは、今後使わなさそうなので、備忘録としてここに書いて置かなくてもいいかな。
また、気が向いたらメモっておこう。
投稿者 Takenori : November 29, 2004 02:24 AM
Trackback Pings
このエントリーのトラックバックURL:
http://blog.kaede-software.com/mt-tb.cgi/378