thanks for your helpful responses. Dr Ruud my aim was to parse the text area M10..P43000 and then print it using PrintArea. Maybe I have misunderstood the function of PrintArea.
Stewart, many thanks for the suggestion. I will indeed try it out and see what happens. Anjan On Tue, Jul 22, 2008 at 5:11 AM, Stewart Anderson < [EMAIL PROTECTED]> wrote: > > > -----Original Message----- > > From: Stewart Anderson > > Sent: 22 July 2008 09:34 > > To: ANJAN PURKAYASTHA; beginners@perl.org > > Cc: Stewart Anderson > > Subject: RE: parsing a large excel file > > > > > > > -----Original Message----- > > > From: ANJAN PURKAYASTHA [mailto:[EMAIL PROTECTED] > > > Sent: 22 July 2008 02:41 > > > To: beginners@perl.org > > > Subject: parsing a large excel file > > > > > > to all, > > > i have installed Spreadshee::ParseExcel to parse some large excel > data > > > files. > > > Here is the problem I'm facing. I need to parse data from columns M > to P > > > and > > > rows 10 to 43000. Now I know that there is a PrintArea method that > can > > > print > > > an area of a worksheet specified in (start row, start col, end row, > end > > > col). However I'm having difficulty in specifying these parameters > > > correctly > > > for the PrintArea method. I'm also not sure what the output is going > to > > > look > > > like. > > > does anyone in this forum have any pointers? > > > all advice will be appreciated. > > > tia, > > > anjan > > > > > I have only used the Simple version previously to parse and entire > row > > but the method Cell ( ROW, COL ) In the docs for the module you > > showed suggests you can get at the data directly. > > > > Stu > > > > > Maybe I spoke to soon, that method seem to return the iobject, not > 100% sure what that gives you without trying it. > > But the sample script in the doc looks like a good place to start, > just set your row min/max and col min/max and you should be close to > getting something. > > > However, the sample program in the docs work as is. It should be > easy to adapt it for your needs. Try this as a start. The first bit is > pretty much out of the box and the last bit just shows you can extract > what row/column you want. > > The data is at the end, load it into excel. > > > > #! /usr/bin/perl > > use warnings; > use strict ; > use Data::Dumper; > use Spreadsheet::ParseExcel; > > my $excel = > Spreadsheet::ParseExcel::Workbook->Parse('c:\temp\filetest.xls'); > foreach my $sheet (@{$excel->{Worksheet}}) { > printf("Sheet: %s\n", $sheet->{Name}); > $sheet->{MaxRow} ||= $sheet->{MinRow}; > foreach my $row ($sheet->{MinRow} .. $sheet->{MaxRow}) { > $sheet->{MaxCol} ||= $sheet->{MinCol}; > foreach my $col ($sheet->{MinCol} .. $sheet->{MaxCol}) { > my $cell = $sheet->{Cells}[$row][$col]; > if ($cell) { > printf("( %s , %s ) => %s\n", $row, $col, > $cell->{Val}); > } > } > } > } > > print "Extract specific row/cell row 2, col b \n" ; > foreach my $sheet (@{$excel->{Worksheet}}) { > my $row = 2; > my $col = 2; > my $cell = $sheet->{Cells}[$row][$col]; > printf("( %s , %s ) => %s\n", $row, $col, $cell->{Val}); > > } > > > > Data to load in excel > 1a,1b,1c,1d,1e,1f > 2a,2b,3c,4d,2e,2f > 3a,3b,3c,3d,3e,3f > 4a,4b,4c,4d,4e,4f > > > Information in this email including any attachments may be privileged, > confidential and is intended exclusively for the addressee. The views > expressed may not be official policy, but the personal views of the > originator. If you have received it in error, please notify the sender by > return e-mail and delete it from your system. You should not reproduce, > distribute, store, retransmit, use or disclose its contents to anyone. > Please note we reserve the right to monitor all e-mail communication through > our internal and external networks. SKY and the SKY marks are trade marks of > British Sky Broadcasting Group plc and are used under licence. British Sky > Broadcasting Limited (Registration No. 2906991), Sky Interactive Limited > (Registration No. 3554332), Sky-In-Home Service Limited (Registration No. > 2067075) and Sky Subscribers Services Limited (Registration No. 2340150) are > direct or indirect subsidiaries of British Sky Broadcasting Group plc > (Registration No. 2247735). All of the companies mentioned in this paragraph > are incorporated in England and Wales and share the same registered office > at Grant Way, Isleworth, Middlesex TW7 5QD. > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > http://learn.perl.org/ > > > -- ============================= anjan purkayastha bioinformatics analyst whitehead institute for biomedical research nine cambridge center cambridge, ma 02142 purkayas [at] wi [dot] mit [dot] edu 703.740.6939