http://qs321.pair.com?node_id=1186836


in reply to Scan cells in Excel active worksheet

Well, you can't parse the excel file if it hasn't yet been saved to disk...

If you want to work with an opened file, then you would need to use excel APIs (See Win32::Ole) to control the application itself. Perhaps try running it through WINE?

  • Comment on Re: Scan cells in Excel active worksheet

Replies are listed 'Best First'.
Re^2: Scan cells in Excel active worksheet
by gauss76 (Scribe) on Apr 03, 2017 at 15:19 UTC

    OK, I explained badly!

    The Excel file is saved to disk on the linux server.

    I use the following commands to get acces to the Excel file

    $parser   = Spreadsheet::ParseExcel->new();

    $parser   = Spreadsheet::ParseXLSX->new();

    I use one of the above depending on whether the file is .xls or .xlsx. Then I use:

    my $workbook = $parser->parse($FileName);

    It's the next part that is causing the problem. currently I loop through all worksheets with

    for my $worksheet ( $workbook->worksheets() )

    But I really only want to work with the active worksheet.

    gauss76

        Many thanks huck for the answer, which works fine for .xls files with the code:

        my $FileName = "Excel Test File 1.xls";

        my $parser   = Spreadsheet::ParseExcel->new();

        my $workbook   = $parser->parse($FileName);

        my $Res1=get_active_sheet($workbook);

        But I have no idea how to get it to work with xlsx files, which, currently fails if I try the following:

        my $FileName = "Excel Test File 1A.xlsx";

        my $parser   = Spreadsheet::ParseXLSX->new();

        my $workbook   = $parser->parse($FileName);

        my $Res1=get_active_sheet($workbook);

        gauss76