Spreadsheet::ParseExcel
am 16.11.2006 12:55:42 von Karan Arora
Hi
I am not able to use the functions RowRange() and ColRange() available
with the package Spreadsheet::ParseExcel::Worksheet. They return value
0 and -1 indicating that the worksheet is empty (which is definitely
not the case) and not the correct values for the range. Has anyone
faced this problem before. Please help.
------------------------------------------------------------ --------
use OLE;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
use Spreadsheet::WriteExcel;
use Spreadsheet::ParseExcel;
$xlfile ="c:\\sample.xls";
if (-e "$xlfile")
{
##### OLE - Excel Connection
# Create OLE object - Excel Application Pointer
$xl_app = CreateObject OLE 'Excel.Application' || die $!;
print "Excel launched successfully \n";
# Set Application Visibility
$xl_app->{'Visible'} = 0;
# Open Excel File
$workbook = $xl_app->Workbooks->Open($xlfile);
print 'Opening ', $xlfile, "....\n";
# setup active worksheet
$worksheet = $workbook->Worksheets('Test History');
#Print the SheetName
my $sheetName = $worksheet->Name;
print $sheetName," is the sheet name\n";
#Find the size of the defined cells on the sheet
my ($rowMin,$rowMax) =
$worksheet->Spreadsheet::ParseExcel::Worksheet::RowRange();
my ($columnMin,$columnMax) =
$worksheet->Spreadsheet::ParseExcel::Worksheet::ColRange();
print "Row Min = ", $rowMin, " Row Max = ", $rowMax, " Column Min = ",
$columnMin, " Column Min = ", $columnMax;
------------------------------------------------------------ --------
Re: Spreadsheet::ParseExcel
am 16.11.2006 15:42:47 von paduille.4060.mumia.w
On 11/16/2006 05:55 AM, Karan Arora wrote:
> Hi
>
> I am not able to use the functions RowRange() and ColRange() available
> with the package Spreadsheet::ParseExcel::Worksheet. They return value
> 0 and -1 indicating that the worksheet is empty (which is definitely
> not the case) and not the correct values for the range. Has anyone
> faced this problem before. Please help.
>
>
> ------------------------------------------------------------ --------
> use OLE;
> use Win32::OLE qw(in with);
> use Win32::OLE::Const 'Microsoft Excel';
> use Spreadsheet::WriteExcel;
> use Spreadsheet::ParseExcel;
>
> $xlfile ="c:\\sample.xls";
>
> if (-e "$xlfile")
> {
> ##### OLE - Excel Connection
>
> # Create OLE object - Excel Application Pointer
> $xl_app = CreateObject OLE 'Excel.Application' || die $!;
> print "Excel launched successfully \n";
> # Set Application Visibility
> $xl_app->{'Visible'} = 0;
>
> # Open Excel File
> $workbook = $xl_app->Workbooks->Open($xlfile);
> print 'Opening ', $xlfile, "....\n";
> # setup active worksheet
> $worksheet = $workbook->Worksheets('Test History');
>
> #Print the SheetName
> my $sheetName = $worksheet->Name;
> print $sheetName," is the sheet name\n";
>
> #Find the size of the defined cells on the sheet
> my ($rowMin,$rowMax) =
> $worksheet->Spreadsheet::ParseExcel::Worksheet::RowRange();
> my ($columnMin,$columnMax) =
> $worksheet->Spreadsheet::ParseExcel::Worksheet::ColRange();
>
> print "Row Min = ", $rowMin, " Row Max = ", $rowMax, " Column Min = ",
> $columnMin, " Column Min = ", $columnMax;
> ------------------------------------------------------------ --------
>
Spreadsheet::ParseExcel's RowRange() method only works on objects
created by Spreadsheet::ParseExcel->new().
Since $worksheet was created by Win32::OLE, $worksheet is the wrong kind
of object on which to invoke RowRange().
Win32::OLE and Spreadsheet::ParseExcel have nothing to do with one
another and have completely different ways if interacting with an Excel
file. If you use one in a script, it's unlikely you'll need the other.
I advise you to find the Win32::OLE (Excel ?) equivalent of RowRange().
--
paduille.4060.mumia.w@earthlink.net
Re: Spreadsheet::ParseExcel
am 17.11.2006 06:12:22 von Karan Arora
Hey Mumia
Thanks a lot for your help!!
Regards
Karan
Mumia W. (reading news) wrote:
> On 11/16/2006 05:55 AM, Karan Arora wrote:
> > Hi
> >
> > I am not able to use the functions RowRange() and ColRange() available
> > with the package Spreadsheet::ParseExcel::Worksheet. They return value
> > 0 and -1 indicating that the worksheet is empty (which is definitely
> > not the case) and not the correct values for the range. Has anyone
> > faced this problem before. Please help.
> >
> >
> > ------------------------------------------------------------ --------
> > use OLE;
> > use Win32::OLE qw(in with);
> > use Win32::OLE::Const 'Microsoft Excel';
> > use Spreadsheet::WriteExcel;
> > use Spreadsheet::ParseExcel;
> >
> > $xlfile ="c:\\sample.xls";
> >
> > if (-e "$xlfile")
> > {
> > ##### OLE - Excel Connection
> >
> > # Create OLE object - Excel Application Pointer
> > $xl_app = CreateObject OLE 'Excel.Application' || die $!;
> > print "Excel launched successfully \n";
> > # Set Application Visibility
> > $xl_app->{'Visible'} = 0;
> >
> > # Open Excel File
> > $workbook = $xl_app->Workbooks->Open($xlfile);
> > print 'Opening ', $xlfile, "....\n";
> > # setup active worksheet
> > $worksheet = $workbook->Worksheets('Test History');
> >
> > #Print the SheetName
> > my $sheetName = $worksheet->Name;
> > print $sheetName," is the sheet name\n";
> >
> > #Find the size of the defined cells on the sheet
> > my ($rowMin,$rowMax) =
> > $worksheet->Spreadsheet::ParseExcel::Worksheet::RowRange();
> > my ($columnMin,$columnMax) =
> > $worksheet->Spreadsheet::ParseExcel::Worksheet::ColRange();
> >
> > print "Row Min = ", $rowMin, " Row Max = ", $rowMax, " Column Min = ",
> > $columnMin, " Column Min = ", $columnMax;
> > ------------------------------------------------------------ --------
> >
>
> Spreadsheet::ParseExcel's RowRange() method only works on objects
> created by Spreadsheet::ParseExcel->new().
>
> Since $worksheet was created by Win32::OLE, $worksheet is the wrong kind
> of object on which to invoke RowRange().
>
> Win32::OLE and Spreadsheet::ParseExcel have nothing to do with one
> another and have completely different ways if interacting with an Excel
> file. If you use one in a script, it's unlikely you'll need the other.
>
> I advise you to find the Win32::OLE (Excel ?) equivalent of RowRange().
>
>
> --
> paduille.4060.mumia.w@earthlink.net
Re: Spreadsheet::ParseExcel
am 18.11.2006 20:19:48 von The Spanish Inquisition
Mumia W. (reading news) wrote:
> Win32::OLE and Spreadsheet::ParseExcel have nothing to do with one
> another and have completely different ways if interacting with an Excel
> file. If you use one in a script, it's unlikely you'll need the other.
It might be a good idea to use the two if you want your script to be as
portable as possible. An application of mine uses Win32::OLE if running
in Windows and Excel's available an Spreadsheet::ParseExcel if it isn't.
S::P seems to work well enough inpractice, so I guess I could've used
just that.
Ximinez
--
Our three weapons are fear, surprise, and ruthless efficiency...
and an almost fanatical devotion to the Pope....
http://www.ai.mit.edu/people/paulfitz/spanish/t1.html
http://www.youtube.com/watch?v=gldlyTjXk9A