shell bypass 403
use strict;
use warnings;
use Spreadsheet::ParseExcel;
my $oExcel = Spreadsheet::ParseExcel->new;
die "Usage: $0 file.xls\n" if not @ARGV;
#=Default
use Spreadsheet::ParseExcel::FmtDefault;
my $oFmt = Spreadsheet::ParseExcel::FmtDefault->new;
my $oBook = $oExcel->Parse($ARGV[0]);
#=cut
#Japan
#use Spreadsheet::ParseExcel::FmtJapan2;
#my $oFmt = Spreadsheet::ParseExcel::FmtJapan2->new(Code=>'sjis');
#my $oBook = $oExcel->Parse('Excel/FmtTest.xls', $oFmt);
#=cut
#Other Countries (ex. Russia (CP1251))
#use Spreadsheet::ParseExcel::FmtUnicode;
#my $oFmt = Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map => 'CP1251');
#my $oBook = $oExcel->Parse('Excel/FmtTest.xls', $oFmt);
#=cut
my($iR, $iC, $oWkS, $oWkC);
print "=========================================\n";
print 'FILE :', $oBook->{File} , "\n",
'COUNT :', $oBook->{SheetCount} , "\n",
'AUTHOR :', $oBook->{Author} , "\n";
for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
$oWkS = $oBook->{Worksheet}[$iSheet];
print "--------- SHEET:", $oWkS->{Name}, "\n";
print ">> Print Setting\n",
'Landscape :', $oWkS->{Landscape} , "\n",
'Scale :', $oWkS->{Scale} , "\n",
'FitWidth :', $oWkS->{FitWidth} , "\n",
'FitHeight :', $oWkS->{FitHeight} , "\n",
'PageFit :', $oWkS->{PageFit} , "\n",
'PaperSize :', $oWkS->{PaperSize} , "\n",
'PageStart :', $oWkS->{PageStart} , "\n",
'UsePage :', $oWkS->{UsePage} , "\n";
print ">> Format\n",
'Mergin Left :', $oWkS->{LeftMergin} , "\n",
' Right :', $oWkS->{RightMergin} , "\n",
' Top :', $oWkS->{TopMergin} , "\n",
' Bottom :', $oWkS->{BottomMergin} , "\n",
' Header :', $oWkS->{HeaderMergin} , "\n",
' Footer :', $oWkS->{FooterMergin} , "\n",
'Horizontal Center:', $oWkS->{HCenter} , "\n",
'Vertical Center :', $oWkS->{VCenter} , "\n",
'Header :', $oWkS->{Header} , "\n",
'Footer :', $oWkS->{Footer} , "\n";
print "Print Area :\n";
foreach my $raA (@{$oBook->{PrintArea}[$iSheet]}) {
print ' Area :', join(",", @$raA), "\n";
}
my $rhA = $oBook->{PrintTitle}[$iSheet];
print "Print Title :\n";
print " Row :\n";
foreach my $raTr (@{$rhA->{Row}}) {
print '>> :', join(",", @$raTr) , "\n";
}
print " Column :\n";
foreach my $raTr (@{$rhA->{Column}}) {
print '>> :', join(",", @$raTr) , "\n";
}
print 'Print Gridlines :', $oWkS->{PrintGrid} , "\n",
'Print Headings :', $oWkS->{PrintHeaders} , "\n",
'NoColor :', $oWkS->{NoColor} , "\n",
'Draft :', $oWkS->{Draft} , "\n",
'Notes :', $oWkS->{Notes} , "\n",
'LeftToRight :', $oWkS->{LeftToRight} , "\n";
foreach my $raA (@{$oWkS->{MergedArea}}) {
print "Merged Area:", join(",", @$raA), "\n";
}
print 'Horizontal PageBreak :', join(',', @{$oWkS->{HPageBreak}}), "\n"
if($oWkS->{HPageBreak});
print 'Vertical PageBreak :', join(',', @{$oWkS->{VPageBreak}}), "\n"
if($oWkS->{VPageBreak});
for(my $iR = $oWkS->{MinRow} ;
defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
for(my $iC = $oWkS->{MinCol} ;
defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
$oWkC = $oWkS->{Cells}[$iR][$iC];
if($oWkC) {
print "------------------------------------------------------\n",
"( $iR , $iC ) =>", $oWkC->Value, "\n";
print 'Format :', $oFmt->FmtString($oWkC, $oBook), "\n",
'AlignH :', $oWkC->{Format}->{AlignH}, "\n",
'AlignV :', $oWkC->{Format}->{AlignV}, "\n",
'Indent :', $oWkC->{Format}->{Indent}, "\n",
'Wrap :', $oWkC->{Format}->{Wrap}, "\n",
'Shrink :', $oWkC->{Format}->{Shrink}, "\n",
'Merged :', (defined($oWkC->{Merged})?
$oWkC->{Merged}: 'No'), "\n",
'Rotate :', $oWkC->{Format}->{Rotate}, "\n";
# 'JustLast :', $oWkC->{Format}->{JustLast}, "\n",
# 'ReadDir :', $oWkC->{Format}->{ReadDir}, "\n",
my $oFont = $oWkC->{Format}->{Font};
print 'Name :', $oFont->{Name}, "\n",
'Bold :', $oFont->{Bold}, "\n",
'Italic :', $oFont->{Italic}, "\n",
'Height :', $oFont->{Height}, "\n",
'Underline :', $oFont->{Underline}, "\n",
'UnderlineStyle :', sprintf("%02x", $oFont->{UnderlineStyle}), "\n",
'Color :', $oFont->{Color}, "\n",
'Color RGB :', Spreadsheet::ParseExcel->ColorIdxToRGB($oFont->{Color}), "\n",
'Strikeout :', $oFont->{Strikeout}, "\n",
'Super :', $oFont->{Super}, "\n",
'BdrStyle :', join(',', @{$oWkC->{Format}->{BdrStyle}}), "\n",
'BdrColor :', join(',', @{$oWkC->{Format}->{BdrColor}}), "\n",
'BdrDiag :', join(',', @{$oWkC->{Format}->{BdrDiag}}), "\n",
'Pattern :', join(',', @{$oWkC->{Format}->{Fill}}), "\n",
'Lock :', $oWkC->{Format}->{Lock}, "\n",
'Hidden :', $oWkC->{Format}->{Hidden}, "\n";
}
}
}
}