http://www.perlmonks.org?node_id=1036927


in reply to Extract column of excel

So deling with CSV in a spreadsheet way. Install Text::CSV_XS and Spreadsheet::Read, and then:

use Spreadsheet::Read; my $ss = ReadData ("file.csv"); # Spreadsheet::Read indexes from 1. 0 is the control record/column my @sheet = $ss->[1]; # CSV has just 1 sheet my @column = $sheet->{cell}[4]; # 4th column, unformatted

Enjoy, Have FUN! H.Merijn

Replies are listed 'Best First'.
Re^2: Extract column of excel
by MynameisAchint (Novice) on Jun 04, 2013 at 11:39 UTC
    #!/bin/perl -w use strict; #variables you can change to suit your needs my $column_separator = ","; my $column_number = "1"; $column_number--; my $file="Working_On.csv"; open(FILE,"<","$file"); my @lines=<FILE>; close FILE; foreach my $line (@lines){ my @columns = split(/$column_separator/,"$line"); print $columns[$column_number],"\n"; }
    This is my code , but it does not read the entire csv file but reads from a particular cell of csv . I am working on one sheet only but the entries in column are about 1000. So can you suggest a way that the entire csv file is read at once

      Your code works fine! I have only added a chomp but that does not really make a difference...

      #!/bin/perl -w use strict; #variables you can change to suit your needs my $column_separator = ","; my $column_number = "2"; $column_number--; my @lines=<DATA>; foreach my $line (@lines){ chomp($line); my @columns = split(/$column_separator/,"$line"); print $columns[$column_number],"\n"; } __DATA__ 1,2,3,4 A,B,C,D
        Hey thank you for replying , now the problem I am having is that when code gets a blank cell it does not copy it to the array , it copies the next entry in column but I desire that even blank cells be copied as blank entry in array