in reply to Re^11: Converting Excel to Hash
in thread Converting Excel to Hash
use Spreadsheet::ParseExcel; use Data::Dumper; $filename="Book2.xls"; $e=new Spreadsheet::ParseExcel; $eBook=$e->Parse($filename); $sheets = $eBook->{SheetCount}; ($eSheet, $sheetName); foreach $sheet (0 .. $sheets - 1) { $eSheet = $eBook->{Worksheet}[$sheet]; $sheetName = $eSheet->{Name}; print "Worksheet $sheet: $sheetName\n"; %set =(); %data =(); foreach $row( 1 .. $eSheet->{MaxRow} ) { if (defined ($eSheet->{Cells}[$row][0] )) { $master_key=($eSheet->{Cells}[$row][0]->Value); $r=$row; } else { $master_key=$master_key; } foreach $col(1 .. $eSheet->{MaxCol}) { my $key=$eSheet->{Cells}[0][$col]->Value; if (defined $eSheet->{Cells}[$row][$col]) { $val=($eSheet->{Cells}[$row][$col]->Value); } else { $val=$eSheet->{Cells}[$r][$col]->Value; } $set{$key}=$val; } push @{ $data{$master_key}}, \%set; } } print Dumper %data;
I think this can handle even if the data is missing.But the output is not coming.The output is coming as shown below.
Excel Format: ID Name Degree CLZ 1 Teja ph.d nit ph.d iit 2 Ravi B.tech iir output: $var1='1' $var2=[ { clz=>iir, degree=>b.tech, name=>ravi. }, $var2->[0]; ] $Var3='2'; $Var4=[ $var2->[0] ];
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^13: Converting Excel to Hash
by poj (Abbot) on Jan 04, 2017 at 13:25 UTC | |
|
Re^13: Converting Excel to Hash
by poj (Abbot) on Jan 04, 2017 at 12:40 UTC | |
|
Re^13: Converting Excel to Hash
by Corion (Patriarch) on Jan 04, 2017 at 12:27 UTC | |
by ravi179 (Novice) on Jan 05, 2017 at 04:33 UTC |