use Win32::OLE qw(in); use Win32::OLE::Const; my $Class = "Excel.Application"; my $File = "c:\\web\\apache\\cgi-bin\\testfile1.xls"; my $Excel = Win32::OLE->GetActiveObject( $Class ); if (!($Excel)) { $Excel = new Win32::OLE($Class, \&QuitApp ) || die "Could not cretate an OLE '$Class' object"; } $Excel->{Visible} = 1; my $Book = $Excel->Workbooks->Open( $File ); # open the file my $count = $Book->Worksheets()->{Count}; print("There's $count worksheets in $File.\n\n"); $Book->ActiveSheet->Activate(); my @thing = $Excel->ActiveSheet->PrintOut( { PrintToFile => 1, PrToFileName => "c:\\temp\\ps_output\\test1.file", Copies => 1 }); $Book->{Parent}->Quit();