in reply to Excel->workbooks->open

this will open an existing excel file and allow you to make changes to it by using win32::ole object
use Win32::OLE; # name file my $xlfile = "c:/book1.xls"; # open application my $excel = new Win32::OLE('Excel.Application'); #my $excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32 +::OLE->new('Excel.Application', 'Quit') or die Win32::OLE->LastError +(); #$excel->{'Visible'} = 0; ## 0 = Not Visible, 1 = Visible # open workbook my $workbook = $excel->Workbooks->Open($xlfile); # add a new workbook #$workbook = $excel->Workbooks->Add; # add new worksheet #$workbook->Worksheets->Add(); # setup active worksheet my $worksheet = $workbook->Worksheets('Sheet1'); # write values #$worksheet->Cells(1,1)->{Value} = "fee"; #$workbook->Worksheets('Sheet1')->Range('A1')->{Value} = 'perl writing + to Excel'; $worksheet->Range("A11")->{Value} = 'testing write'; #print "ERROR:" . Win32::OLE->LastError(); # save, close and quit $workbook->Save(); $excel->ActiveWorkbook->Close(0); $excel->Quit();
hope this helps. keep in mind you will need to alter this to do what you want.

Replies are listed 'Best First'.
Re: Re: Excel->workbooks->open
by Grygonos (Chaplain) on Feb 24, 2004 at 18:10 UTC

    Win32::OLE won't work on Solaris I believe.Spreadsheet::WriteExcel will write the files but it isn't able to write to an existing Excel file.

    Perhaps re-think your design on this one. If all you need from the Solaris server is the results of a db query. Then connect to it via DBI and put the results into the Excel sheet via Win32::OLE on the Windows machine. This all assumes you can connect via DBI to your database.


    Grygonos
Re: Re: Excel->workbooks->open
by waswas-fng (Curate) on Feb 24, 2004 at 18:05 UTC
    The OP requested a Solaris solution, Win32:: tree is not available on Solaris.


    -Waswas