This is an automated email from the git hooks/post-receive script.

gregoa pushed a commit to branch master
in repository libspreadsheet-xlsx-perl.

commit 3fb0bb1c6f7cc26c7be6f77178f980fc9f903c13
Author: gregor herrmann <gre...@debian.org>
Date:   Mon Nov 9 19:22:30 2015 +0100

    Imported Upstream version 0.15
---
 Changes                             |   11 +-
 MANIFEST                            |   11 +-
 META.json                           |   44 ++
 META.yml                            |   25 +
 Makefile.PL                         |    8 +-
 README                              |    4 +-
 lib/Spreadsheet/XLSX.pm             |  449 +++++++------
 lib/Spreadsheet/XLSX/Fmt2007.pm     |   85 ++-
 lib/Spreadsheet/XLSX/Utility2007.pm | 1214 +++++++++++++++++------------------
 t/1_____loreyna126.t                |   36 +-
 t/2_____with_chart.t                |   42 +-
 t/empty_v_tag.t                     |   13 +
 t/empty_v_tag.xlsx                  |  Bin 0 -> 12714 bytes
 t/formats.t                         |   24 +
 t/formats.xlsx                      |  Bin 0 -> 11570 bytes
 t/kwalitee.t                        |    9 +
 t/missing_styles.t                  |   13 +
 t/missing_styles.xlsx               |  Bin 0 -> 6546 bytes
 18 files changed, 1063 insertions(+), 925 deletions(-)

diff --git a/Changes b/Changes
index f7e11cf..255b4fd 100755
--- a/Changes
+++ b/Changes
@@ -1,5 +1,14 @@
 Revision history for Perl extension Spreadsheet::XLSX.
 
+0.15
+
+       - revert a numeric formatting change which caused isssues with 
Spreadsheet::Read.
+
+0.14  
+
+       - change default date format to yyyy-mm-dd.  This matches 
Spreadsheet::ParseExcel.
+       - handle xml tag attributes in varying order (RT #86667, et.al.)
+
 0.13  Sun May 16 13:08:12 MSD 2010
 
        - ability to read xlsx from filehandle (RT #57483, thanks Sergey 
Pushkin)
@@ -63,4 +72,4 @@ Revision history for Perl extension Spreadsheet::XLSX.
                -A -X -n Spreadsheet::XLSC --skip-exporter --skip-autoloader
 
 
-       
\ No newline at end of file
+       
diff --git a/MANIFEST b/MANIFEST
old mode 100755
new mode 100644
index 7b84047..725cefa
--- a/MANIFEST
+++ b/MANIFEST
@@ -4,10 +4,19 @@ lib/Spreadsheet/XLSX/Fmt2007.pm
 lib/Spreadsheet/XLSX/Utility2007.pm
 Makefile.PL
 MANIFEST                       This list of files
+META.yml                       Module meta-data (added by MakeMaker)
 README
+Spreadsheet-XLSX-0.14.tar.gz
 t/0____________use.t
 t/1_____loreyna126.t
 t/1_____loreyna126.xlsx
 t/2_____with_chart.t
 t/2_____with_chart.xlsx
-META.yml                                 Module meta-data (added by MakeMaker)
+t/empty_v_tag.t
+t/empty_v_tag.xlsx
+t/formats.t
+t/formats.xlsx
+t/kwalitee.t
+t/missing_styles.t
+t/missing_styles.xlsx
+META.json                                Module JSON meta-data (added by 
MakeMaker)
diff --git a/META.json b/META.json
new file mode 100644
index 0000000..84a8187
--- /dev/null
+++ b/META.json
@@ -0,0 +1,44 @@
+{
+   "abstract" : "Perl extension for reading MS Excel 2007 files;",
+   "author" : [
+      "Dmitry Ovsyanko <d...@eludia.ru>",
+      "Mike Blackwell <mike.blackw...@rrd.com"
+   ],
+   "dynamic_config" : 1,
+   "generated_by" : "ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter 
version 2.150001",
+   "license" : [
+      "perl_5"
+   ],
+   "meta-spec" : {
+      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec";,
+      "version" : "2"
+   },
+   "name" : "Spreadsheet-XLSX",
+   "no_index" : {
+      "directory" : [
+         "t",
+         "inc"
+      ]
+   },
+   "prereqs" : {
+      "build" : {
+         "requires" : {
+            "ExtUtils::MakeMaker" : "0"
+         }
+      },
+      "configure" : {
+         "requires" : {
+            "ExtUtils::MakeMaker" : "0"
+         }
+      },
+      "runtime" : {
+         "requires" : {
+            "Archive::Zip" : "1.18",
+            "Spreadsheet::ParseExcel" : "0",
+            "Test::NoWarnings" : "0"
+         }
+      }
+   },
+   "release_status" : "stable",
+   "version" : "0.15"
+}
diff --git a/META.yml b/META.yml
new file mode 100644
index 0000000..63cc749
--- /dev/null
+++ b/META.yml
@@ -0,0 +1,25 @@
+---
+abstract: 'Perl extension for reading MS Excel 2007 files;'
+author:
+  - 'Dmitry Ovsyanko <d...@eludia.ru>'
+  - 'Mike Blackwell <mike.blackw...@rrd.com'
+build_requires:
+  ExtUtils::MakeMaker: '0'
+configure_requires:
+  ExtUtils::MakeMaker: '0'
+dynamic_config: 1
+generated_by: 'ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 
2.150001'
+license: perl
+meta-spec:
+  url: http://module-build.sourceforge.net/META-spec-v1.4.html
+  version: '1.4'
+name: Spreadsheet-XLSX
+no_index:
+  directory:
+    - t
+    - inc
+requires:
+  Archive::Zip: '1.18'
+  Spreadsheet::ParseExcel: '0'
+  Test::NoWarnings: '0'
+version: '0.15'
diff --git a/Makefile.PL b/Makefile.PL
index ba6fb51..e450386 100755
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -5,11 +5,13 @@ use ExtUtils::MakeMaker;
 WriteMakefile(
     NAME              => 'Spreadsheet::XLSX',
     VERSION_FROM      => 'lib/Spreadsheet/XLSX.pm', # finds $VERSION
+    LICENSE           => 'perl_5',
     PREREQ_PM         => {
        'Archive::Zip' => 1.18,
-       'Spreadsheet::ParseExcel' => '',
-    }, # e.g., Module::Name => 1.1
+       'Spreadsheet::ParseExcel' => 0,
+    'Test::NoWarnings' => 0,
+    }, 
     ($] >= 5.005 ?     ## Add these new keywords supported since 5.005
       (ABSTRACT_FROM  => 'lib/Spreadsheet/XLSX.pm', # retrieve abstract from 
module
-       AUTHOR         => 'Dmitry Ovsyanko <d...@eludia.ru>') : ()),
+       AUTHOR         => ['Dmitry Ovsyanko <d...@eludia.ru>','Mike Blackwell 
<mike.blackw...@rrd.com']) : ()),
 );
diff --git a/README b/README
index bb6b493..24faef5 100755
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
-Spreadsheet-XLSC version 0.01
-=============================
+Spreadsheet-XLSX
+================
 
 Spreadsheet::XLSX - Perl extension for reading MS Excel 2007 files;
 
diff --git a/lib/Spreadsheet/XLSX.pm b/lib/Spreadsheet/XLSX.pm
index 8731fca..84bf974 100755
--- a/lib/Spreadsheet/XLSX.pm
+++ b/lib/Spreadsheet/XLSX.pm
@@ -4,230 +4,285 @@ use 5.006000;
 use strict;
 use warnings;
 
-our @ISA = qw();
+use base 'Spreadsheet::ParseExcel::Workbook';
 
-our $VERSION = '0.13';
+our $VERSION = '0.15';
 
 use Archive::Zip;
-use Spreadsheet::XLSX::Fmt2007;
-use Data::Dumper;
 use Spreadsheet::ParseExcel;
+use Spreadsheet::XLSX::Fmt2007;
 
 
################################################################################
 
 sub new {
+    my ($class, $filename, $converter) = @_;
 
-       my ($class, $filename, $converter) = @_;
-       
-       my $self = {};
-       
-       $self -> {zip} = Archive::Zip -> new ();
+    my %shared_info;    # shared_strings, styles, style_info, rels, converter
+    $shared_info{converter} = $converter;
+    
+    my $self = bless Spreadsheet::ParseExcel::Workbook->new(), $class;
 
-       if (ref $filename) {
-       
-               $self -> {zip} -> readFromFileHandle ($filename) == 
Archive::Zip::AZ_OK or die ("Cannot open data as Zip archive");
-       
-       } 
-       else {
-       
-               $self -> {zip} -> read ($filename) == Archive::Zip::AZ_OK or 
die ("Cannot open $filename as Zip archive");
-       
-       };
+    my $zip                     = __load_zip($filename);
 
-       my $member_shared_strings = $self -> {zip} -> memberNamed 
('xl/sharedStrings.xml');
-       
-       my @shared_strings = ();
+    $shared_info{shared_strings}= __load_shared_strings($zip, 
$shared_info{converter});
+    my ($styles, $style_info)   = __load_styles($zip);
+    $shared_info{styles}        = $styles;
+    $shared_info{style_info}    = $style_info;
+    $shared_info{rels}          = __load_rels($zip);
 
-       if ($member_shared_strings) {
-       
-               my $mstr = $member_shared_strings->contents; 
-               $mstr =~ s/<t\/>/<t><\/t>/gsm;  # this handles an empty t tag 
in the xml <t/>
-               foreach my $si ($mstr =~ /<si.*?>(.*?)<\/si/gsm) {
-                       my $str;
-                       foreach my $t ($si =~ /<t.*?>(.*?)<\/t/gsm) {
-                               $t = $converter -> convert ($t) if $converter;
-                               $str .= $t;
-                       }
-                       push @shared_strings, $str;
-               }       
-       }
-        my $member_styles = $self -> {zip} -> memberNamed ('xl/styles.xml');
+    $self->_load_workbook($zip, \%shared_info);
+
+    return $self;
+}
 
-        my @styles = ();
+sub _load_workbook {
+    my ($self, $zip, $shared_info) = @_;
 
-       my %style_info = ();
+    my $member_workbook = $zip->memberNamed('xl/workbook.xml') or 
die("xl/workbook.xml not found in this zip\n");
+    $self->{SheetCount} = 0;
+    $self->{FmtClass}   = Spreadsheet::XLSX::Fmt2007->new;
+    $self->{Flg1904}    = 0;
+    if ($member_workbook->contents =~ /date1904="1"/) {
+        $self->{Flg1904} = 1;
+    }
 
-        if ($member_styles) {
+    foreach ($member_workbook->contents =~ /\<(.*?)\/?\>/g) {
 
-                foreach my $t ($member_styles -> contents =~ /xf\ 
numFmtId="([^"]*)"(?!.*\/cellStyleXfs)/gsm) { #"
-                       # $t = $converter -> convert ($t) if $converter;
-                        push @styles, $t;
+        /^(\w+)\s+/;
+
+        my ($tag, $other) = ($1, $');
+
+        my @pairs = split /\" /, $other;
+
+        $tag eq 'sheet' or next;
+
+        my $sheet = {
+            MaxRow => 0,
+            MaxCol => 0,
+            MinRow => 1000000,
+            MinCol => 1000000,
+        };
+
+        foreach ($other =~ /(\S+=".*?")/gsm) {
+
+            my ($k, $v) = split /=?"/;    #"
+
+            if ($k eq 'name') {
+                $sheet->{Name} = $v;
+                $sheet->{Name} = 
$shared_info->{converter}->convert($sheet->{Name}) if defined 
$shared_info->{converter};
+            } elsif ($k eq 'r:id') {
+
+                $sheet->{path} = $shared_info->{rels}->{$v};
+
+            }
+
+        }
 
+        my $wsheet = Spreadsheet::ParseExcel::Worksheet->new(%$sheet);
+        $self->{Worksheet}[$self->{SheetCount}] = $wsheet;
+        $self->{SheetCount} += 1;
+
+    }
+
+
+    foreach my $sheet (@{$self->{Worksheet}}) {
+
+        my $member_sheet = $zip->memberNamed("xl/$sheet->{path}") or next;
+
+        my ($row, $col);
+
+        my $parsing_v_tag = 0;
+        my $s    = 0;
+        my $s2   = 0;
+        my $sty  = 0;
+        foreach ($member_sheet->contents =~ /(\<.*?\/?\>|.*?(?=\<))/g) {
+            if (/^\<c\s*.*?\s*r=\"([A-Z])([A-Z]?)(\d+)\"/) {
+
+                ($row, $col) = __decode_cell_name($1, $2, $3);
+
+                $s   = m/t=\"s\"/      ? 1  : 0;
+                $s2  = m/t=\"str\"/    ? 1  : 0;
+                $sty = m/s="([0-9]+)"/ ? $1 : 0;
+
+            } elsif (/^<v>/) {
+                $parsing_v_tag = 1;
+            } elsif (/^<\/v>/) {
+                $parsing_v_tag = 0;
+            } elsif (length($_) && $parsing_v_tag) {
+                my $v = $s ? $shared_info->{shared_strings}->[$_] : $_;
+
+                if ($v eq "</c>") {
+                    $v = "";
+                }
+                my $type      = "Text";
+                my $thisstyle = "";
+
+                if (not($s) && not($s2)) {
+                    $type = "Numeric";
+
+                    if (defined $sty && defined 
$shared_info->{styles}->[$sty]) {
+                        $thisstyle = 
$shared_info->{style_info}->{$shared_info->{styles}->[$sty]};
+                        if ($thisstyle =~ /\b(mmm|m|d|yy|h|hh|mm|ss)\b/) {
+                            $type = "Date";
+                        }
+                    }
                 }
-               my $default = $1 || '';
-
-               foreach my $t1 (@styles){
-                       $member_styles -> contents =~ /numFmtId="$t1" 
formatCode="([^"]*)/;
-                       my $formatCode = $1 || '';
-                       if ($formatCode eq $default || not($formatCode)){
-                               if ($t1 == 9 || $t1==10){ 
$formatCode="0.00000%";}
-                               elsif ($t1 == 14){ $formatCode="m-d-yy";}
-                               else {
-                                       $formatCode="";
-                               }
-                       }
-                       $style_info{$t1} = $formatCode;
-                       $default = $1 || '';
-               }
 
+
+                $sheet->{MaxRow} = $row if $sheet->{MaxRow} < $row;
+                $sheet->{MaxCol} = $col if $sheet->{MaxCol} < $col;
+                $sheet->{MinRow} = $row if $sheet->{MinRow} > $row;
+                $sheet->{MinCol} = $col if $sheet->{MinCol} > $col;
+
+                if ($v =~ /(.*)E\-(.*)/gsm && $type eq "Numeric") {
+                    $v = $1 / (10**$2);    # this handles scientific notation 
for very small numbers
+                }
+
+                my $cell = Spreadsheet::ParseExcel::Cell->new(
+                    Val    => $v,
+                    Format => $thisstyle,
+                    Type   => $type
+                );
+
+                $cell->{_Value} = $self->{FmtClass}->ValFmt($cell, $self);
+                if ($type eq "Date") {
+                    if ($v < 1) {    #then this is Excel time field
+                        $cell->{Type} = "Text";
+                    }
+                    $cell->{Val}  = $cell->{_Value};
+                }
+                $sheet->{Cells}[$row][$col] = $cell;
+            }
         }
 
-       my $member_rels = $self -> {zip} -> memberNamed 
('xl/_rels/workbook.xml.rels') or die ("xl/_rels/workbook.xml.rels not found in 
this zip\n");
-       
-       my %rels = ();
+        $sheet->{MinRow} = 0 if $sheet->{MinRow} > $sheet->{MaxRow};
+        $sheet->{MinCol} = 0 if $sheet->{MinCol} > $sheet->{MaxCol};
 
-       foreach ($member_rels -> contents =~ /\<Relationship (.*?)\/?\>/g) {
-       
-               /^Id="(.*?)".*?Target="(.*?)"/ or next;
-               
-               $rels {$1} = $2;
-       
-       }
-
-       my $member_workbook = $self -> {zip} -> memberNamed ('xl/workbook.xml') 
or die ("xl/workbook.xml not found in this zip\n");
-       my $oBook = Spreadsheet::ParseExcel::Workbook->new;
-       $oBook->{SheetCount} = 0;
-       $oBook->{FmtClass} = Spreadsheet::XLSX::Fmt2007->new;
-       $oBook->{Flg1904}=0;
-       if ($member_workbook->contents =~ /date1904="1"/){
-               $oBook->{Flg1904}=1;
-       }
-       my @Worksheet = ();
-       
-       foreach ($member_workbook -> contents =~ /\<(.*?)\/?\>/g) {
-       
-               /^(\w+)\s+/;
-               
-               my ($tag, $other) = ($1, $');
-
-               my @pairs = split /\" /, $other;
-
-               $tag eq 'sheet' or next;
-               
-               my $sheet = {
-                       MaxRow => 0,
-                       MaxCol => 0,
-                       MinRow => 1000000,
-                       MinCol => 1000000,
-               };
-               
-               foreach ($other =~ /(\S+=".*?")/gsm) {
-
-                       my ($k, $v) = split /=?"/; #"
-       
-                       if ($k eq 'name') {
-                               $sheet -> {Name} = $v;
-                               $sheet -> {Name} = $converter -> convert 
($sheet -> {Name}) if $converter;
-                       }
-                       elsif ($k eq 'r:id')    {
-                       
-                               $sheet -> {path} = $rels {$v};
-                               
-                       };
-                                       
-               }
-               my $wsheet = Spreadsheet::ParseExcel::Worksheet->new(%$sheet);
-               push @Worksheet, $wsheet;
-               $oBook->{Worksheet}[$oBook->{SheetCount}] = $wsheet;
-               $oBook->{SheetCount}+=1;
-                               
-       }
-
-       $self -> {Worksheet} = \@Worksheet;
-       
-       foreach my $sheet (@Worksheet) {
-               
-               my $member_sheet = $self -> {zip} -> memberNamed 
("xl/$sheet->{path}") or next;
-       
-               my ($row, $col);
-               
-               my $flag = 0;
-               my $s    = 0;
-               my $s2   = 0;
-               my $sty  = 0;
-               foreach ($member_sheet -> contents =~ 
/(\<.*?\/?\>|.*?(?=\<))/g) {
-                       if (/^\<c r=\"([A-Z])([A-Z]?)(\d+)\"/) {
-                               
-                               $col = ord ($1) - 65;
-                               
-                               if ($2) {
-                                       $col++;
-                                       $col *= 26;
-                                       $col += (ord ($2) - 65);
-                               }
-                               
-                               $row = $3 - 1;
-                               
-                               $s   = m/t=\"s\"/      ?  1 : 0;
-                               $s2  = m/t=\"str\"/    ?  1 : 0;
-                               $sty = m/s="([0-9]+)"/ ? $1 : 0;
-
-                       }
-                       elsif (/^<v/) {
-                               $flag = 1;
-                       }
-                       elsif (/^<\/v/) {
-                               $flag = 0;
-                       }
-                       elsif (length ($_) && $flag) {
-                               my $v = $s ? $shared_strings [$_] : $_;
-                               if ($v eq "</c>"){$v="";}
-                               my $type = "Text";
-                               my $thisstyle = "";
-                               if (not($s) && not($s2)){
-                                       $type="Numeric";
-                                       $thisstyle = $style_info{$styles[$sty]};
-                                       if ($thisstyle =~ /(?<!Re)d|m|y/){
-                                               $type="Date";
-                                       }
-                               }       
-                               $sheet -> {MaxRow} = $row if $sheet -> {MaxRow} 
< $row;
-                               $sheet -> {MaxCol} = $col if $sheet -> {MaxCol} 
< $col;
-                               $sheet -> {MinRow} = $row if $sheet -> {MinRow} 
> $row;
-                               $sheet -> {MinCol} = $col if $sheet -> {MinCol} 
> $col;
-                               if ($v =~ /(.*)E\-(.*)/gsm && $type eq 
"Numeric"){
-                                       $v=$1/(10**$2);  # this handles 
scientific notation for very small numbers
-                               }
-                               my $cell =Spreadsheet::ParseExcel::Cell->new(
-
-                                       Val    => $v,
-                                       Format => $thisstyle,
-                                       Type => $type
-                                       
-                               );
-
-                               $cell->{_Value} = 
$oBook->{FmtClass}->ValFmt($cell, $oBook);
-                               if ($type eq "Date" && $v<1){  #then this is 
Excel time field
-                                       $cell->{Type}="Text";
-                                       $cell->{Val}=$cell->{_Value};
-                               }
-                               $sheet -> {Cells} [$row] [$col] = $cell;
-                       }
-                                       
-               }
-               
-               $sheet -> {MinRow} = 0 if $sheet -> {MinRow} > $sheet -> 
{MaxRow};
-               $sheet -> {MinCol} = 0 if $sheet -> {MinCol} > $sheet -> 
{MaxCol};
-
-       }
-foreach my $stys (keys %style_info){
+    }
+
+    return $self;
+}
+
+# Convert cell name in the format AA1 to a row and column number.
+
+sub __decode_cell_name {
+    my ($letter1, $letter2, $digits) = @_;
+
+    my $col = ord($letter1) - 65;
+
+    if ($letter2) {
+        $col++;
+        $col *= 26;
+        $col += (ord($letter2) - 65);
+    }
+
+    my $row = $digits - 1;
+
+    return ($row, $col);
+}
+
+
+sub __load_shared_strings {
+    my ($zip, $converter) = @_;
+
+    my $member_shared_strings = $zip->memberNamed('xl/sharedStrings.xml');
+
+    my @shared_strings = ();
+
+    if ($member_shared_strings) {
+
+        my $mstr = $member_shared_strings->contents;
+        $mstr =~ s/<t\/>/<t><\/t>/gsm;    # this handles an empty t tag in the 
xml <t/>
+        foreach my $si ($mstr =~ /<si.*?>(.*?)<\/si/gsm) {
+            my $str;
+            foreach my $t ($si =~ /<t.*?>(.*?)<\/t/gsm) {
+                $t = $converter->convert($t) if defined $converter;
+                $str .= $t;
+            }
+            push @shared_strings, $str;
+        }
+    }
+
+    return \@shared_strings;
+}
+
+
+sub __load_styles {
+    my ($zip) = @_;
+
+    my $member_styles = $zip->memberNamed('xl/styles.xml');
+
+    my @styles = ();
+    my %style_info = ();
+
+    if ($member_styles) {
+        my $formatter = Spreadsheet::XLSX::Fmt2007->new();
+
+        foreach my $t ($member_styles->contents =~ /xf\ 
numFmtId="([^"]*)"(?!.*\/cellStyleXfs)/gsm) {    #"
+            push @styles, $t;
+        }
+
+        my $default = $1 || '';
+    
+        foreach my $t1 (@styles) {
+            $member_styles->contents =~ /numFmtId="$t1" formatCode="([^"]*)/;
+            my $formatCode = $1 || '';
+            if ($formatCode eq $default || not($formatCode)) {
+                if ($t1 == 9 || $t1 == 10) {
+                    $formatCode = '0.00000%';
+                } elsif ($t1 == 14) {
+                    $formatCode = 'yyyy-mm-dd';
+                } else {
+                    $formatCode = '';
+                }
+#                $formatCode = $formatter->FmtStringDef($t1);
+            }
+            $style_info{$t1} = $formatCode;
+            $default = $1 || '';
+        }
+
+    }
+    return (\@styles, \%style_info);
+}
+
+
+sub __load_rels {
+    my ($zip) = @_;
+
+    my $member_rels = $zip->memberNamed('xl/_rels/workbook.xml.rels') or 
die("xl/_rels/workbook.xml.rels not found in this zip\n");
+
+    my %rels = ();
+
+    foreach ($member_rels->contents =~ /\<Relationship (.*?)\/?\>/g) {
+
+        my ($id, $target);
+        ($id) = /Id="(.*?)"/;
+        ($target) = /Target="(.*?)"/;
+ 
+           if (defined $id and defined $target) {      
+               $rels{$id} = $target;
+        }
+
+    }
+
+    return \%rels;
 }
-       bless ($self, $class);
 
-       return $oBook;
+sub __load_zip {
+    my ($filename) = @_;
 
+    my $zip = Archive::Zip->new();
+
+    if (ref $filename) {
+        $zip->readFromFileHandle($filename) == Archive::Zip::AZ_OK or 
die("Cannot open data as Zip archive");
+    } else {
+        $zip->read($filename) == Archive::Zip::AZ_OK or die("Cannot open 
$filename as Zip archive");
+    }
+    
+    return $zip;
 }
 
+
 1;
 __END__
 
diff --git a/lib/Spreadsheet/XLSX/Fmt2007.pm b/lib/Spreadsheet/XLSX/Fmt2007.pm
index de93780..50aed60 100755
--- a/lib/Spreadsheet/XLSX/Fmt2007.pm
+++ b/lib/Spreadsheet/XLSX/Fmt2007.pm
@@ -8,7 +8,7 @@ use strict;
 use warnings;
 
 use Spreadsheet::XLSX::Utility2007 qw(ExcelFmt);
-our $VERSION = '0.13'; # 
+our $VERSION = '0.13';    #
 
 my %hFmtDefault = (
     0x00 => '@',
@@ -25,7 +25,7 @@ my %hFmtDefault = (
     0x0B => '0.00E+00',
     0x0C => '# ?/?',
     0x0D => '# ??/??',
-    0x0E => 'm-d-yy',
+    0x0E => 'yyyy-mm-dd',
     0x0F => 'd-mmm-yy',
     0x10 => 'd-mmm',
     0x11 => 'mmm-yy',
@@ -34,7 +34,8 @@ my %hFmtDefault = (
     0x14 => 'h:mm',
     0x15 => 'h:mm:ss',
     0x16 => 'm-d-yy h:mm',
-#0x17-0x24 -- Differs in Natinal
+
+    #0x17-0x24 -- Differs in Natinal
     0x25 => '(#,##0_);(#,##0)',
     0x26 => '(#,##0_);[RED](#,##0)',
     0x27 => '(#,##0.00);(#,##0.00)',
@@ -49,107 +50,105 @@ my %hFmtDefault = (
     0x30 => '##0.0E+0',
     0x31 => '@',
 );
+
 #------------------------------------------------------------------------------
 # new (for Spreadsheet::XLSX::FmtDefault)
 #------------------------------------------------------------------------------
 sub new {
-    my($sPkg, %hKey) = @_;
-    my $oThis={ 
-    };
+    my ($sPkg, %hKey) = @_;
+    my $oThis = {};
     bless $oThis;
     return $oThis;
 }
+
 #------------------------------------------------------------------------------
 # TextFmt (for Spreadsheet::XLSX::FmtDefault)
 #------------------------------------------------------------------------------
 sub TextFmt {
-    my($oThis, $sTxt, $sCode) =@_;
-    return $sTxt if((! defined($sCode)) || ($sCode eq '_native_'));
+    my ($oThis, $sTxt, $sCode) = @_;
+    return $sTxt if ((!defined($sCode)) || ($sCode eq '_native_'));
     return pack('U*', unpack('n*', $sTxt));
 }
+
 #------------------------------------------------------------------------------
 # FmtStringDef (for Spreadsheet::XLSX::FmtDefault)
 #------------------------------------------------------------------------------
 sub FmtStringDef {
-    my($oThis, $iFmtIdx, $oBook, $rhFmt) =@_;
+    my ($oThis, $iFmtIdx, $oBook, $rhFmt) = @_;
     my $sFmtStr = $oBook->{FormatStr}->{$iFmtIdx};
 
-    if(!(defined($sFmtStr)) && defined($rhFmt)) {
+    if (!(defined($sFmtStr)) && defined($rhFmt)) {
         $sFmtStr = $rhFmt->{$iFmtIdx};
     }
-    $sFmtStr = $hFmtDefault{$iFmtIdx} unless($sFmtStr);
+    $sFmtStr = $hFmtDefault{$iFmtIdx} unless ($sFmtStr);
     return $sFmtStr;
 }
+
 #------------------------------------------------------------------------------
 # FmtString (for Spreadsheet::XLSX::FmtDefault)
 #------------------------------------------------------------------------------
 sub FmtString {
-    my($oThis, $oCell, $oBook) =@_;
+    my ($oThis, $oCell, $oBook) = @_;
+
+    my $sFmtStr;    # = $oThis->FmtStringDef(
 
-    my $sFmtStr;# = $oThis->FmtStringDef(
-#        $oBook->{Format}[$oCell->{FormatNo}]->{FmtIdx}, $oBook);
+    #        $oBook->{Format}[$oCell->{FormatNo}]->{FmtIdx}, $oBook);
 
-    unless(defined($sFmtStr)) {
+    unless (defined($sFmtStr)) {
         if ($oCell->{Type} eq 'Numeric') {
-           if($oCell->{Format}){
-               $sFmtStr=$oCell->{Format};
-           } elsif(int($oCell->{Val}) != $oCell->{Val}) {
+            if ($oCell->{Format}) {
+                $sFmtStr = $oCell->{Format};
+            } elsif (int($oCell->{Val}) != $oCell->{Val}) {
                 $sFmtStr = '0.00';
-            }
-            else {
+            } else {
                 $sFmtStr = '0';
             }
-        }
-        elsif($oCell->{Type} eq 'Date') {
-           if($oCell->{Format}){
-               $sFmtStr=$oCell->{Format};
-            } elsif(int($oCell->{Val}) <= 0) {
+        } elsif ($oCell->{Type} eq 'Date') {
+            if ($oCell->{Format}) {
+                $sFmtStr = $oCell->{Format};
+            } elsif (int($oCell->{Val}) <= 0) {
                 $sFmtStr = 'h:mm:ss';
-            }
-            else {
+            } else {
                 $sFmtStr = 'm-d-yy';
             }
-        }
-        else {
+        } else {
             $sFmtStr = '@';
         }
     }
     return $sFmtStr;
 }
+
 #------------------------------------------------------------------------------
 # ValFmt (for Spreadsheet::XLSX::FmtDefault)
 #------------------------------------------------------------------------------
 sub ValFmt {
-    my($oThis, $oCell, $oBook) =@_;
+    my ($oThis, $oCell, $oBook) = @_;
 
-    my($Dt, $iFmtIdx, $iNumeric, $Flg1904);
+    my ($Dt, $iFmtIdx, $iNumeric, $Flg1904);
 
     if ($oCell->{Type} eq 'Text') {
-        $Dt = ((defined $oCell->{Val}) && ($oCell->{Val} ne ''))? 
-            $oThis->TextFmt($oCell->{Val}, $oCell->{Code}):''; 
-    }
-    else {      
+        $Dt = ((defined $oCell->{Val}) && ($oCell->{Val} ne '')) ? 
$oThis->TextFmt($oCell->{Val}, $oCell->{Code}) : '';
+    } else {
         $Dt = $oCell->{Val};
     }
-    $Flg1904  = $oBook->{Flg1904};
+    $Flg1904 = $oBook->{Flg1904};
     my $sFmtStr = $oThis->FmtString($oCell, $oBook);
     return ExcelFmt($sFmtStr, $Dt, $Flg1904, $oCell->{Type});
 }
+
 #------------------------------------------------------------------------------
 # ChkType (for Spreadsheet::XLSX::FmtDefault)
 #------------------------------------------------------------------------------
 sub ChkType {
-    my($oPkg, $iNumeric, $iFmtIdx) =@_;
+    my ($oPkg, $iNumeric, $iFmtIdx) = @_;
     if ($iNumeric) {
-        if((($iFmtIdx >= 0x0E) && ($iFmtIdx <= 0x16)) ||
-           (($iFmtIdx >= 0x2D) && ($iFmtIdx <= 0x2F))) {
+        if (   (($iFmtIdx >= 0x0E) && ($iFmtIdx <= 0x16))
+            || (($iFmtIdx >= 0x2D) && ($iFmtIdx <= 0x2F))) {
             return "Date";
-        }
-        else {
+        } else {
             return "Numeric";
         }
-    }
-    else {
+    } else {
         return "Text";
     }
 }
diff --git a/lib/Spreadsheet/XLSX/Utility2007.pm 
b/lib/Spreadsheet/XLSX/Utility2007.pm
index d6cd106..907b96c 100755
--- a/lib/Spreadsheet/XLSX/Utility2007.pm
+++ b/lib/Spreadsheet/XLSX/Utility2007.pm
@@ -11,7 +11,7 @@ use warnings;
 
 require Exporter;
 use vars qw(@ISA @EXPORT_OK);
-@ISA = qw(Exporter);
+@ISA       = qw(Exporter);
 @EXPORT_OK = qw(ExcelFmt LocaltimeExcel ExcelLocaltime col2int int2col 
sheetRef xls2csv);
 our $VERSION = '0.13';
 
@@ -21,469 +21,410 @@ my $sNUMEXP = 
'(^[+-]?\d+(\.\d+)?$)|(^[+-]?\d+\.?(\d*)[eE][+-](\d+))$';
 # ExcelFmt (for Spreadsheet::XLSX::Utility2007)
 #------------------------------------------------------------------------------
 sub ExcelFmt {
-    my($sFmt, $iData, $i1904, $sType) =@_;
+    my ($sFmt, $iData, $i1904, $sType) = @_;
     my $sCond;
-    my $sWkF ='';
-    my $sRes='';
-    $sFmt=unescape_HTML($sFmt);
-#1. Get Condition
-    if($sFmt=~/^\[([<>=][^\]]+)\](.*)$/) {
+    my $sWkF = '';
+    my $sRes = '';
+    $sFmt = unescape_HTML($sFmt);
+
+    #1. Get Condition
+    if ($sFmt =~ /^\[([<>=][^\]]+)\](.*)$/) {
         $sCond = $1;
-        $sFmt = $2;
+        $sFmt  = $2;
     }
     $sFmt =~ s/_/ /g;
 
     my @sFmtWk;
     my $sFmtObj;
-    my $iFmtPos=0;
-    my $iDblQ=0;
-    my $iQ = 0;
+    my $iFmtPos = 0;
+    my $iDblQ   = 0;
+    my $iQ      = 0;
     foreach my $sWk (split //, $sFmt) {
-        if($iDblQ or $iQ) {
-            $sFmtWk[$iFmtPos] .=$sWk;
-            $iDblQ = 0 if($sWk eq '"');
+        if ($iDblQ or $iQ) {
+            $sFmtWk[$iFmtPos] .= $sWk;
+            $iDblQ = 0 if ($sWk eq '"');
             $iQ = 0;
             next;
         }
 
-        if($sWk eq ';') {
+        if ($sWk eq ';') {
             $iFmtPos++;
             next;
-        }
-        elsif($sWk eq '"') {
+        } elsif ($sWk eq '"') {
             $iDblQ = 1;
-        }
-        elsif($sWk eq '!') {
+        } elsif ($sWk eq '!') {
             $iQ = 1;
-        }
-        elsif($sWk eq '\\') {
+        } elsif ($sWk eq '\\') {
             $iQ = 1;
-#            next;
-        }
-        elsif($sWk eq '(') { #Skip?
+
+            #            next;
+        } elsif ($sWk eq '(') {    #Skip?
             next;
-        }
-        elsif($sWk eq ')') { #Skip?
+        } elsif ($sWk eq ')') {    #Skip?
             next;
         }
-        $sFmtWk[$iFmtPos] .=$sWk;
+        $sFmtWk[$iFmtPos] .= $sWk;
     }
-#Get FmtString
-    if(scalar(@sFmtWk)>1) {
-        if($sCond) {
-            $sFmtObj = $sFmtWk[((eval(qq/"$iData" $sCond/))? 0: 1)];
-        }
-        else {
-            my $iWk = ($iData =~/$sNUMEXP/)? $iData: 0;
+
+    #Get FmtString
+    if (scalar(@sFmtWk) > 1) {
+        if ($sCond) {
+            $sFmtObj = $sFmtWk[((eval(qq/"$iData" $sCond/)) ? 0 : 1)];
+        } else {
+            my $iWk = ($iData =~ /$sNUMEXP/) ? $iData : 0;
+
             # $iData = abs($iData) if($iWk !=0);
-            if(scalar(@sFmtWk)==2) {
-                $sFmtObj = $sFmtWk[(($iWk>=0)? 0: 1)];
-            }
-            elsif(scalar(@sFmtWk)==3) {
-                $sFmtObj = $sFmtWk[(($iWk>0)? 0: (($iWk<0)? 1:  2))];
-            }
-            else {
-                if($iData =~/$sNUMEXP/) {
-                    $sFmtObj = $sFmtWk[(($iWk>0)? 0: (($iWk<0)? 1:  2))];
-                }
-                else {
-                    $sFmtObj = $sFmtWk[ 3];
+            if (scalar(@sFmtWk) == 2) {
+                $sFmtObj = $sFmtWk[(($iWk >= 0) ? 0 : 1)];
+            } elsif (scalar(@sFmtWk) == 3) {
+                $sFmtObj = $sFmtWk[(($iWk > 0) ? 0 : (($iWk < 0) ? 1 : 2))];
+            } else {
+                if ($iData =~ /$sNUMEXP/) {
+                    $sFmtObj = $sFmtWk[(($iWk > 0) ? 0 : (($iWk < 0) ? 1 : 
2))];
+                } else {
+                    $sFmtObj = $sFmtWk[3];
                 }
             }
         }
-    }
-    else {
+    } else {
         $sFmtObj = $sFmtWk[0];
     }
     my $sColor;
-    if($sFmtObj =~ /^(\[[^hm\[\]]*\])/) {
+    if ($sFmtObj =~ /^(\[[^hm\[\]]*\])/) {
         $sColor = $1;
         $sFmtObj = substr($sFmtObj, length($sColor));
         chop($sColor);
         $sColor = substr($sColor, 1);
     }
-#print "FMT:$sFmtObj Co:$sColor\n";
 
-#3.Build Data
-    my $iFmtMode=0;   #1:Number, 2:Date
-    my $i=0;
-    my $ir=0;
+    #print "FMT:$sFmtObj Co:$sColor\n";
+
+    #3.Build Data
+    my $iFmtMode = 0;    #1:Number, 2:Date
+    my $i        = 0;
+    my $ir       = 0;
     my $sFmtWk;
-    my @aRep = ();
-    my $sFmtRes='';
+    my @aRep    = ();
+    my $sFmtRes = '';
 
-    my $iFflg = -1;
-    my $iRpos = -1;
-    my $iCmmCnt = 0;
-    my $iBunFlg = 0;
+    my $iFflg     = -1;
+    my $iRpos     = -1;
+    my $iCmmCnt   = 0;
+    my $iBunFlg   = 0;
     my $iFugouFlg = 0;
-    my $iPer = 0;
-    my $iAm=0;
+    my $iPer      = 0;
+    my $iAm       = 0;
     my $iSt;
 
-    while($i<length($sFmtObj)) {
+    while ($i < length($sFmtObj)) {
         $iSt = $i;
         my $sWk = substr($sFmtObj, $i, 1);
 
-        if($sWk !~ /[#0\+\-\.\?eE\,\%]/) {
-            if($iFflg != -1) {
-                push @aRep, [substr($sFmtObj, $iFflg, $i-$iFflg),  
-                                    $iRpos, $i-$iFflg];
-                $iFflg= -1;
+        if ($sWk !~ /[#0\+\-\.\?eE\,\%]/) {
+            if ($iFflg != -1) {
+                push @aRep, [substr($sFmtObj, $iFflg, $i - $iFflg), $iRpos, $i 
- $iFflg];
+                $iFflg = -1;
             }
         }
 
-        if($sWk eq '"') {
-            $iDblQ = $iDblQ? 0: 1;
+        if ($sWk eq '"') {
+            $iDblQ = $iDblQ ? 0 : 1;
             $i++;
             next;
-        }
-        elsif($sWk eq '!') {
+        } elsif ($sWk eq '!') {
             $iQ = 1;
             $i++;
             next;
-        }
-        elsif($sWk eq '\\') {
-            if($iQ == 1) {
-        }
-        else {
+        } elsif ($sWk eq '\\') {
+            if ($iQ == 1) {
+            } else {
                 $iQ = 1;
                 $i++;
                 next;
             }
         }
-#print "WK:", ord($sWk), " $iFmtMode \n";
-#print "DEF1: $iDblQ DEF2: $iQ\n";
-        if((defined($iDblQ) and ($iDblQ)) or (defined($iQ) and ($iQ))) {
+
+        #print "WK:", ord($sWk), " $iFmtMode \n";
+        #print "DEF1: $iDblQ DEF2: $iQ\n";
+        if ((defined($iDblQ) and ($iDblQ)) or (defined($iQ) and ($iQ))) {
             $iQ = 0;
-            if(($iFmtMode != 2) and 
-                ((substr($sFmtObj, $i, 2) eq "\x81\xA2") ||
-                 (substr($sFmtObj, $i, 2) eq "\x81\xA3") ||
-                 (substr($sFmtObj, $i, 2) eq "\xA2\xA4") ||
-                 (substr($sFmtObj, $i, 2) eq "\xA2\xA5"))
-                ){
-#print "PUSH:", unpack("H*", substr($sFmtObj, $i, 2)), "\n";
-                push @aRep, [substr($sFmtObj, $i, 2),  
-                        length($sFmtRes), 2];
+            if (
+                ($iFmtMode != 2)
+                and (  (substr($sFmtObj, $i, 2) eq "\x81\xA2")
+                    || (substr($sFmtObj, $i, 2) eq "\x81\xA3")
+                    || (substr($sFmtObj, $i, 2) eq "\xA2\xA4")
+                    || (substr($sFmtObj, $i, 2) eq "\xA2\xA5"))
+              ) {
+                #print "PUSH:", unpack("H*", substr($sFmtObj, $i, 2)), "\n";
+                push @aRep, [substr($sFmtObj, $i, 2), length($sFmtRes), 2];
                 $iFugouFlg = 1;
-                $i+=2;
-            }
-            else{
+                $i += 2;
+            } else {
                 $i++;
             }
-        }
-        elsif(($sWk =~ /[#0\+\.\?eE\,\%]/) || 
-              (($iFmtMode != 2) and 
-                (($sWk eq '-') || ($sWk eq '(') || ($sWk eq ')')))
-            ) {
-            $iFmtMode = 1 unless($iFmtMode);
-            if(substr($sFmtObj, $i, 1) =~ /[#0]/) {
-                if(substr($sFmtObj, $i) =~ 
/^([#0]+)([\.]?)([0#]*)([eE])([\+\-])([0#]+)/){
+        } elsif (
+            ($sWk =~ /[#0\+\.\?eE\,\%]/)
+            || (    ($iFmtMode != 2)
+                and (($sWk eq '-') || ($sWk eq '(') || ($sWk eq ')')))
+          ) {
+            $iFmtMode = 1 unless ($iFmtMode);
+            if (substr($sFmtObj, $i, 1) =~ /[#0]/) {
+                if (substr($sFmtObj, $i) =~ 
/^([#0]+)([\.]?)([0#]*)([eE])([\+\-])([0#]+)/) {
                     push @aRep, [substr($sFmtObj, $i, length($&)), $i, 
length($&)];
-                    $i +=length($&);
-                }
-                else{
-                    if($iFflg==-1) {
+                    $i += length($&);
+                } else {
+                    if ($iFflg == -1) {
                         $iFflg = $i;
                         $iRpos = length($sFmtRes);
                     }
                 }
-            }
-            elsif(substr($sFmtObj, $i, 1) eq '?') {
-                if($iFflg != -1) {
-                    push @aRep, [substr($sFmtObj, $iFflg, $i-$iFflg+1),  
-                                        $iRpos, $i-$iFflg+1];
+            } elsif (substr($sFmtObj, $i, 1) eq '?') {
+                if ($iFflg != -1) {
+                    push @aRep, [substr($sFmtObj, $iFflg, $i - $iFflg + 1), 
$iRpos, $i - $iFflg + 1];
                 }
                 $iFflg = $i;
-                while($i<length($sFmtObj)) {
-                    if (substr($sFmtObj, $i, 1) eq '/'){
+                while ($i < length($sFmtObj)) {
+                    if (substr($sFmtObj, $i, 1) eq '/') {
                         $iBunFlg = 1;
-                    }
-                    elsif (substr($sFmtObj, $i, 1) eq '?'){
+                    } elsif (substr($sFmtObj, $i, 1) eq '?') {
                         ;
-                    }
-                    else {
-                        if(($iBunFlg) && (substr($sFmtObj, $i, 1) =~ /[0-9]/)) 
{
+                    } else {
+                        if (($iBunFlg) && (substr($sFmtObj, $i, 1) =~ 
/[0-9]/)) {
                             ;
-                        }
-                        else {
+                        } else {
                             last;
                         }
                     }
                     $i++;
                 }
                 $i--;
-                push @aRep, [substr($sFmtObj, $iFflg, $i-$iFflg+1),  
-                                        length($sFmtRes), $i-$iFflg+1];
+                push @aRep, [substr($sFmtObj, $iFflg, $i - $iFflg + 1), 
length($sFmtRes), $i - $iFflg + 1];
                 $iFflg = -1;
-            }
-            elsif(substr($sFmtObj, $i, 3) =~ /^[eE][\+\-][0#]$/) {
-                if(substr($sFmtObj, $i) =~ /([eE])([\+\-])([0#]+)/){
+            } elsif (substr($sFmtObj, $i, 3) =~ /^[eE][\+\-][0#]$/) {
+                if (substr($sFmtObj, $i) =~ /([eE])([\+\-])([0#]+)/) {
                     push @aRep, [substr($sFmtObj, $i, length($&)), $i, 
length($&)];
-                    $i +=length($&);
+                    $i += length($&);
                 }
                 $iFflg = -1;
-            }
-            else {
-                if($iFflg != -1) {
-                    push @aRep, [substr($sFmtObj, $iFflg, $i-$iFflg),  
-                                        $iRpos, $i-$iFflg];
-                    $iFflg= -1;
+            } else {
+                if ($iFflg != -1) {
+                    push @aRep, [substr($sFmtObj, $iFflg, $i - $iFflg), 
$iRpos, $i - $iFflg];
+                    $iFflg = -1;
                 }
-                if(substr($sFmtObj, $i, 1) =~ /[\+\-]/) {
-                    push @aRep, [substr($sFmtObj, $i, 1),  
-                                        length($sFmtRes), 1];
+                if (substr($sFmtObj, $i, 1) =~ /[\+\-]/) {
+                    push @aRep, [substr($sFmtObj, $i, 1), length($sFmtRes), 1];
                     $iFugouFlg = 1;
-                }
-                elsif(substr($sFmtObj, $i, 1) eq '.') {
-                    push @aRep, [substr($sFmtObj, $i, 1),  
-                                        length($sFmtRes), 1];
-                }
-                elsif(substr($sFmtObj, $i, 1) eq ',') {
+                } elsif (substr($sFmtObj, $i, 1) eq '.') {
+                    push @aRep, [substr($sFmtObj, $i, 1), length($sFmtRes), 1];
+                } elsif (substr($sFmtObj, $i, 1) eq ',') {
                     $iCmmCnt++;
-                    push @aRep, [substr($sFmtObj, $i, 1),  
-                                        length($sFmtRes), 1];
-                }
-                elsif(substr($sFmtObj, $i, 1) eq '%') {
+                    push @aRep, [substr($sFmtObj, $i, 1), length($sFmtRes), 1];
+                } elsif (substr($sFmtObj, $i, 1) eq '%') {
                     $iPer = 1;
-                }
-                elsif((substr($sFmtObj, $i, 1) eq '(') ||
-                      (substr($sFmtObj, $i, 1) eq ')')) {
-                            push @aRep, [substr($sFmtObj, $i, 1),  
-                                                length($sFmtRes), 1];
-                            $iFugouFlg = 1;
+                } elsif ((substr($sFmtObj, $i, 1) eq '(')
+                    || (substr($sFmtObj, $i, 1) eq ')')) {
+                    push @aRep, [substr($sFmtObj, $i, 1), length($sFmtRes), 1];
+                    $iFugouFlg = 1;
                 }
             }
             $i++;
-        }
-        elsif($sWk =~ /[ymdhsapg]/) {
-            $iFmtMode = 2 unless($iFmtMode);
-            if(substr($sFmtObj, $i, 5) =~ /am\/pm/i) {
+        } elsif ($sWk =~ /[ymdhsapg]/) {
+            $iFmtMode = 2 unless ($iFmtMode);
+            if (substr($sFmtObj, $i, 5) =~ /am\/pm/i) {
                 push @aRep, ['am/pm', length($sFmtRes), 5];
-                $iAm=1;
-                $i+=5;
-            }
-            elsif(substr($sFmtObj, $i, 3) =~ /a\/p/i) {
+                $iAm = 1;
+                $i += 5;
+            } elsif (substr($sFmtObj, $i, 3) =~ /a\/p/i) {
                 push @aRep, ['a/p', length($sFmtRes), 3];
-                $iAm=1;
-                $i+=3;
-            }
-            elsif(substr($sFmtObj, $i, 5) eq 'mmmmm') {
+                $iAm = 1;
+                $i += 3;
+            } elsif (substr($sFmtObj, $i, 5) eq 'mmmmm') {
                 push @aRep, ['mmmmm', length($sFmtRes), 5];
-                $i+=5;
-            }
-            elsif((substr($sFmtObj, $i, 4) eq 'mmmm')  ||
-                  (substr($sFmtObj, $i, 4) eq 'dddd')  ||
-                  (substr($sFmtObj, $i, 4) eq 'yyyy')  ||
-                  (substr($sFmtObj, $i, 4) eq 'ggge') 
-                ) {
+                $i += 5;
+            } elsif ((substr($sFmtObj, $i, 4) eq 'mmmm')
+                || (substr($sFmtObj, $i, 4) eq 'dddd')
+                || (substr($sFmtObj, $i, 4) eq 'yyyy')
+                || (substr($sFmtObj, $i, 4) eq 'ggge')) {
                 push @aRep, [substr($sFmtObj, $i, 4), length($sFmtRes), 4];
-                $i+=4;
-            }
-            elsif((substr($sFmtObj, $i, 3) eq 'mmm')  ||
-                  (substr($sFmtObj, $i, 3) eq 'yyy')) {
+                $i += 4;
+            } elsif ((substr($sFmtObj, $i, 3) eq 'mmm')
+                || (substr($sFmtObj, $i, 3) eq 'yyy')) {
                 push @aRep, [substr($sFmtObj, $i, 3), length($sFmtRes), 3];
-                $i+=3;
-            }
-            elsif((substr($sFmtObj, $i, 2) eq 'yy')  ||
-              (substr($sFmtObj, $i, 2) eq 'mm')  ||
-              (substr($sFmtObj, $i, 2) eq 'dd')  ||
-              (substr($sFmtObj, $i, 2) eq 'hh')  ||
-              (substr($sFmtObj, $i, 2) eq 'ss')  ||
-              (substr($sFmtObj, $i, 2) eq 'ge')) {
-                if((substr($sFmtObj, $i, 2) eq 'mm') &&
-                   ($#aRep>=0) && 
-                    (($aRep[$#aRep]->[0] eq 'h') or ($aRep[$#aRep]->[0] eq 
'hh'))) {
-                        push @aRep, ['mm', length($sFmtRes), 2, 'min'];
-                }
-                else {
-                        push @aRep, [substr($sFmtObj, $i, 2), 
length($sFmtRes), 2];
+                $i += 3;
+            } elsif ((substr($sFmtObj, $i, 2) eq 'yy')
+                || (substr($sFmtObj, $i, 2) eq 'mm')
+                || (substr($sFmtObj, $i, 2) eq 'dd')
+                || (substr($sFmtObj, $i, 2) eq 'hh')
+                || (substr($sFmtObj, $i, 2) eq 'ss')
+                || (substr($sFmtObj, $i, 2) eq 'ge')) {
+                if (   (substr($sFmtObj, $i, 2) eq 'mm')
+                    && ($#aRep >= 0)
+                    && (($aRep[$#aRep]->[0] eq 'h') or ($aRep[$#aRep]->[0] eq 
'hh'))) {
+                    push @aRep, ['mm', length($sFmtRes), 2, 'min'];
+                } else {
+                    push @aRep, [substr($sFmtObj, $i, 2), length($sFmtRes), 2];
                 }
-                if((substr($sFmtObj, $i, 2) eq 'ss') && ($#aRep>0)) {
-                    if(($aRep[$#aRep-1]->[0] eq 'm') ||
-                       ($aRep[$#aRep-1]->[0] eq 'mm')) {
-                        push(@{$aRep[$#aRep-1]}, 'min');
+                if ((substr($sFmtObj, $i, 2) eq 'ss') && ($#aRep > 0)) {
+                    if (   ($aRep[$#aRep - 1]->[0] eq 'm')
+                        || ($aRep[$#aRep - 1]->[0] eq 'mm')) {
+                        push(@{$aRep[$#aRep - 1]}, 'min');
                     }
                 }
-                $i+=2;
-            }
-            elsif((substr($sFmtObj, $i, 1) eq 'm')  ||
-                  (substr($sFmtObj, $i, 1) eq 'd')  ||
-                  (substr($sFmtObj, $i, 1) eq 'h')  ||
-                  (substr($sFmtObj, $i, 1) eq 's')){
-                if((substr($sFmtObj, $i, 1) eq 'm') &&
-                   ($#aRep>=0) && 
-                    (($aRep[$#aRep]->[0] eq 'h') or ($aRep[$#aRep]->[0]  eq 
'hh'))) {
-                        push @aRep, ['m', length($sFmtRes), 1, 'min'];
-                }
-                else {
-                        push @aRep, [substr($sFmtObj, $i, 1), 
length($sFmtRes), 1];
+                $i += 2;
+            } elsif ((substr($sFmtObj, $i, 1) eq 'm')
+                || (substr($sFmtObj, $i, 1) eq 'd')
+                || (substr($sFmtObj, $i, 1) eq 'h')
+                || (substr($sFmtObj, $i, 1) eq 's')) {
+                if (   (substr($sFmtObj, $i, 1) eq 'm')
+                    && ($#aRep >= 0)
+                    && (($aRep[$#aRep]->[0] eq 'h') or ($aRep[$#aRep]->[0] eq 
'hh'))) {
+                    push @aRep, ['m', length($sFmtRes), 1, 'min'];
+                } else {
+                    push @aRep, [substr($sFmtObj, $i, 1), length($sFmtRes), 1];
                 }
-                if((substr($sFmtObj, $i, 1) eq 's') && ($#aRep>0)) {
-                    if(($aRep[$#aRep-1]->[0] eq 'm') ||
-                       ($aRep[$#aRep-1]->[0] eq 'mm')) {
-                        push(@{$aRep[$#aRep-1]}, 'min');
+                if ((substr($sFmtObj, $i, 1) eq 's') && ($#aRep > 0)) {
+                    if (   ($aRep[$#aRep - 1]->[0] eq 'm')
+                        || ($aRep[$#aRep - 1]->[0] eq 'mm')) {
+                        push(@{$aRep[$#aRep - 1]}, 'min');
                     }
                 }
-                $i+=1;
+                $i += 1;
             }
-        }
-        elsif((substr($sFmtObj, $i, 3) eq '[h]')) {
+        } elsif ((substr($sFmtObj, $i, 3) eq '[h]')) {
             push @aRep, ['[h]', length($sFmtRes), 3];
-            $i+=3;
-        }
-        elsif((substr($sFmtObj, $i, 4) eq '[mm]')) {
+            $i += 3;
+        } elsif ((substr($sFmtObj, $i, 4) eq '[mm]')) {
             push @aRep, ['[mm]', length($sFmtRes), 4];
-            $i+=4;
-        }
-        elsif($sWk eq '@') {
+            $i += 4;
+        } elsif ($sWk eq '@') {
             push @aRep, ['@', length($sFmtRes), 1];
             $i++;
-        }
-        elsif($sWk eq '*') {
-            push @aRep, [substr($sFmtObj, $i, 1),  
-                                        length($sFmtRes), 1];
-        }
-        else{
+        } elsif ($sWk eq '*') {
+            push @aRep, [substr($sFmtObj, $i, 1), length($sFmtRes), 1];
+        } else {
             $i++;
         }
-        $i++ if($i == $iSt);        #No Format match
-        $sFmtRes .= substr($sFmtObj, $iSt, $i-$iSt);
+        $i++ if ($i == $iSt);    #No Format match
+        $sFmtRes .= substr($sFmtObj, $iSt, $i - $iSt);
     }
-#print "FMT: $iRpos ",$sFmtRes, "\n";
-    if($iFflg != -1) {
-        push @aRep, [substr($sFmtObj, $iFflg, $i-$iFflg+1),
-                    $iRpos,, $i-$iFflg+1];
-        $iFflg= 0;
+
+    #print "FMT: $iRpos ",$sFmtRes, "\n";
+    if ($iFflg != -1) {
+        push @aRep, [substr($sFmtObj, $iFflg, $i - $iFflg + 1), $iRpos,, $i - 
$iFflg + 1];
+        $iFflg = 0;
     }
 
-#For Date format
-    $iFmtMode = 0 if(defined $sType && $sType eq 'Text');   #Not Convert Non 
Numeric
-    if(($iFmtMode==2)&& ($iData =~/$sNUMEXP/)) {
+    #For Date format
+    $iFmtMode = 0 if (defined $sType && $sType eq 'Text');    #Not Convert Non 
Numeric
+    if (($iFmtMode == 2) && ($iData =~ /$sNUMEXP/)) {
         my @aTime = ExcelLocaltime($iData, $i1904);
         $aTime[4]++;
         $aTime[5] += 1900;
 
-        my @aMonL = 
-            qw (dum January February March April May June July 
-                August September October November December );
-        my @aMonNm =
-            qw (dum Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
-        my @aWeekNm = 
-            qw (Mon Tue Wed Thu Fri Sat Sun);
-        my @aWeekL = 
-            qw (Monday Tuesday Wednesday Thursday Friday Saturday Sunday);
+        my @aMonL = qw (dum January February March April May June July
+          August September October November December );
+        my @aMonNm  = qw (dum Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
+        my @aWeekNm = qw (Mon Tue Wed Thu Fri Sat Sun);
+        my @aWeekL  = qw (Monday Tuesday Wednesday Thursday Friday Saturday 
Sunday);
         my $sRep;
-        for(my $iIt=$#aRep; $iIt>=0;$iIt--) {
+        for (my $iIt = $#aRep ; $iIt >= 0 ; $iIt--) {
             my $rItem = $aRep[$iIt];
-            if((scalar @$rItem) >=4) {
-    #Min
-                if($rItem->[0] eq 'mm') {
+            if ((scalar @$rItem) >= 4) {
+
+                #Min
+                if ($rItem->[0] eq 'mm') {
                     $sRep = sprintf("%02d", $aTime[1]);
-                }
-                else {
+                } else {
                     $sRep = sprintf("%d", $aTime[1]);
                 }
             }
-    #Year
-            elsif($rItem->[0] eq 'yyyy') {
+
+            #Year
+            elsif ($rItem->[0] eq 'yyyy') {
                 $sRep = sprintf('%04d', $aTime[5]);
-            }
-            elsif($rItem->[0] eq 'yy') {
+            } elsif ($rItem->[0] eq 'yy') {
                 $sRep = sprintf('%02d', $aTime[5] % 100);
             }
-    #Mon
-            elsif($rItem->[0] eq 'mmmmm') {
+
+            #Mon
+            elsif ($rItem->[0] eq 'mmmmm') {
                 $sRep = substr($aMonNm[$aTime[4]], 0, 1);
-            }
-            elsif($rItem->[0] eq 'mmmm') {
+            } elsif ($rItem->[0] eq 'mmmm') {
                 $sRep = $aMonL[$aTime[4]];
-            }
-            elsif($rItem->[0] eq 'mmm') {
+            } elsif ($rItem->[0] eq 'mmm') {
                 $sRep = $aMonNm[$aTime[4]];
-            }
-            elsif($rItem->[0] eq 'mm') {
+            } elsif ($rItem->[0] eq 'mm') {
                 $sRep = sprintf('%02d', $aTime[4]);
-            }
-            elsif($rItem->[0] eq 'm') {
+            } elsif ($rItem->[0] eq 'm') {
                 $sRep = sprintf('%d', $aTime[4]);
             }
-    #Day
-            elsif($rItem->[0] eq 'dddd') {
+
+            #Day
+            elsif ($rItem->[0] eq 'dddd') {
                 $sRep = $aWeekL[$aTime[7]];
-            }
-            elsif($rItem->[0] eq 'ddd') {
+            } elsif ($rItem->[0] eq 'ddd') {
                 $sRep = $aWeekNm[$aTime[7]];
-            }
-            elsif($rItem->[0] eq 'dd') {
+            } elsif ($rItem->[0] eq 'dd') {
                 $sRep = sprintf('%02d', $aTime[3]);
-            }
-            elsif($rItem->[0] eq 'd') {
+            } elsif ($rItem->[0] eq 'd') {
                 $sRep = sprintf('%d', $aTime[3]);
             }
-    #Hour
-            elsif($rItem->[0] eq 'hh') {
-                if($iAm) {
-                    $sRep = sprintf('%02d', $aTime[2]%12);
-                }
-                else {
+
+            #Hour
+            elsif ($rItem->[0] eq 'hh') {
+                if ($iAm) {
+                    $sRep = sprintf('%02d', $aTime[2] % 12);
+                } else {
                     $sRep = sprintf('%02d', $aTime[2]);
                 }
-            }
-            elsif($rItem->[0] eq 'h') {
-                if($iAm) {
-                    $sRep = sprintf('%d', $aTime[2]%12);
-                }
-                else {
+            } elsif ($rItem->[0] eq 'h') {
+                if ($iAm) {
+                    $sRep = sprintf('%d', $aTime[2] % 12);
+                } else {
                     $sRep = sprintf('%d', $aTime[2]);
                 }
             }
-    #SS
-            elsif($rItem->[0] eq 'ss') {
+
+            #SS
+            elsif ($rItem->[0] eq 'ss') {
                 $sRep = sprintf('%02d', $aTime[0]);
-            }
-            elsif($rItem->[0] eq 'S') {
+            } elsif ($rItem->[0] eq 'S') {
                 $sRep = sprintf('%d', $aTime[0]);
             }
-    #am/pm
-            elsif($rItem->[0] eq 'am/pm') {
-                $sRep = ($aTime[4]>12)? 'pm':'am';
-            }
-            elsif($rItem->[0] eq 'a/p') {
-                $sRep = ($aTime[4]>12)? 'p':'a';
-            }
-            elsif($rItem->[0] eq '.') {
+
+            #am/pm
+            elsif ($rItem->[0] eq 'am/pm') {
+                $sRep = ($aTime[4] > 12) ? 'pm' : 'am';
+            } elsif ($rItem->[0] eq 'a/p') {
+                $sRep = ($aTime[4] > 12) ? 'p' : 'a';
+            } elsif ($rItem->[0] eq '.') {
                 $sRep = '.';
-            }
-            elsif($rItem->[0] =~ /^0+$/) {
+            } elsif ($rItem->[0] =~ /^0+$/) {
                 my $i0Len = length($&);
-#print "SEC:", $aTime[7], "\n";
-                $sRep = substr(sprintf("%.${i0Len}f", $aTime[7]/1000.0), 2, 
$i0Len);
-            }
-            elsif($rItem->[0] eq '[h]') {
+
+                #print "SEC:", $aTime[7], "\n";
+                $sRep = substr(sprintf("%.${i0Len}f", $aTime[7] / 1000.0), 2, 
$i0Len);
+            } elsif ($rItem->[0] eq '[h]') {
                 $sRep = sprintf('%d', int($iData) * 24 + $aTime[2]);
+            } elsif ($rItem->[0] eq '[mm]') {
+                $sRep = sprintf('%d', (int($iData) * 24 + $aTime[2]) * 60 + 
$aTime[1]);
             }
-            elsif($rItem->[0] eq '[mm]') {
-                $sRep = sprintf('%d', (int($iData) * 24 + $aTime[2])*60 + 
$aTime[1]);
-            }
-#NENGO(Japanese)
-            elsif($rItem->[0] eq 'ge') {
+
+            #NENGO(Japanese)
+            elsif ($rItem->[0] eq 'ge') {
                 $sRep = Spreadsheet::XLSX::FmtJapan::CnvNengo(1, @aTime);
-            }
-            elsif($rItem->[0] eq 'ggge') {
+            } elsif ($rItem->[0] eq 'ggge') {
                 $sRep = Spreadsheet::XLSX::FmtJapan::CnvNengo(2, @aTime);
-            }
-            elsif($rItem->[0] eq '@') {
+            } elsif ($rItem->[0] eq '@') {
                 $sRep = $iData;
             }
 
-#print "REP:$sRep ",$rItem->[0], ":", $rItem->[1], ":" ,$rItem->[2], "\n";
+            #print "REP:$sRep ",$rItem->[0], ":", $rItem->[1], ":" 
,$rItem->[2], "\n";
             substr($sFmtRes, $rItem->[1], $rItem->[2]) = $sRep;
         }
-    }
-    elsif(($iFmtMode==1)&& ($iData =~/$sNUMEXP/)) {
-        if($#aRep>=0) {
-            while($aRep[$#aRep]->[0] eq ',') {
+    } elsif (($iFmtMode == 1) && ($iData =~ /$sNUMEXP/)) {
+        if ($#aRep >= 0) {
+            while ($aRep[$#aRep]->[0] eq ',') {
                 $iCmmCnt--;
                 substr($sFmtRes, $aRep[$#aRep]->[1], $aRep[$#aRep]->[2]) = '';
                 $iData /= 1000;
@@ -492,362 +433,354 @@ sub ExcelFmt {
 
             my $sNumFmt = join('', map {$_->[0]} @aRep);
             my $sNumRes;
-            my $iTtl=0;
-            my $iE=0;
-            my $iP=0;
-            my $iInt = 0;
-            my $iAftP=undef;
+            my $iTtl  = 0;
+            my $iE    = 0;
+            my $iP    = 0;
+            my $iInt  = 0;
+            my $iAftP = undef;
             foreach my $sItem (split //, $sNumFmt) {
-                if($sItem eq '.') {
+                if ($sItem eq '.') {
                     $iTtl++;
                     $iP = 1;
-                }
-                elsif(($sItem eq 'E') || ($sItem eq 'e')){
+                } elsif (($sItem eq 'E') || ($sItem eq 'e')) {
                     $iE = 1;
-                }
-                elsif($sItem eq '0') {
+                } elsif ($sItem eq '0') {
                     $iTtl++;
-                    $iAftP++ if($iP);
+                    $iAftP++ if ($iP);
                     $iInt = 1;
-                }
-                elsif($sItem eq '#') {
+                } elsif ($sItem eq '#') {
+
                     #$iTtl++;
-                    $iAftP++ if($iP);
+                    $iAftP++ if ($iP);
                     $iInt = 1;
-                }
-                elsif($sItem eq '?') {
+                } elsif ($sItem eq '?') {
+
                     #$iTtl++;
-                    $iAftP++ if($iP);
+                    $iAftP++ if ($iP);
                 }
             }
-            $iData *= 100.0 if($iPer);
-            my $iDData = ($iFugouFlg)? abs($iData) : $iData+0;
-            if($iBunFlg) {
+            $iData *= 100.0 if ($iPer);
+            my $iDData = ($iFugouFlg) ? abs($iData) : $iData + 0;
+            if ($iBunFlg) {
                 $sNumRes = sprintf("%0${iTtl}d", int($iDData));
-            }
-            else {
-                if($iP) {
-                    $sNumRes = sprintf(
-                         (defined($iAftP)? 
-                         "%0${iTtl}.${iAftP}f": "%0${iTtl}f"), $iDData);
-                }
-                else {
+            } else {
+                if ($iP) {
+                    $sNumRes = sprintf((defined($iAftP) ? 
"%0${iTtl}.${iAftP}f" : "%0${iTtl}f"), $iDData);
+                } else {
                     $sNumRes = sprintf("%0${iTtl}.0f", $iDData);
                 }
             }
-            $sNumRes = AddComma($sNumRes) if($iCmmCnt > 0);
-            my $iLen = length($sNumRes);
+            $sNumRes = AddComma($sNumRes) if ($iCmmCnt > 0);
+            my $iLen  = length($sNumRes);
             my $iPPos = -1;
             my $sRep;
 
-            for(my $iIt=$#aRep; $iIt>=0;$iIt--) {
+            for (my $iIt = $#aRep ; $iIt >= 0 ; $iIt--) {
                 my $rItem = $aRep[$iIt];
-                if($rItem->[0] =~/([#0]*)([\.]?)([0#]*)([eE])([\+\-])([0#]+)/) 
{
-                    substr($sFmtRes, $rItem->[1], $rItem->[2]) = 
-                            MakeE($rItem->[0], $iData);
-                }
-                elsif($rItem->[0] =~ /\//) {
-                    substr($sFmtRes, $rItem->[1], $rItem->[2]) = 
-                        MakeBun($rItem->[0], $iData, $iInt);
-                }
-                elsif($rItem->[0] eq '.') {
+                if ($rItem->[0] =~ 
/([#0]*)([\.]?)([0#]*)([eE])([\+\-])([0#]+)/) {
+                    substr($sFmtRes, $rItem->[1], $rItem->[2]) =
+                      MakeE($rItem->[0], $iData);
+                } elsif ($rItem->[0] =~ /\//) {
+                    substr($sFmtRes, $rItem->[1], $rItem->[2]) =
+                      MakeBun($rItem->[0], $iData, $iInt);
+                } elsif ($rItem->[0] eq '.') {
                     $iLen--;
-                    $iPPos=$iLen;
-                }
-                elsif($rItem->[0] eq '+') {
-                    substr($sFmtRes, $rItem->[1], $rItem->[2]) = 
-                        ($iData > 0)? '+': (($iData==0)? '+':'-');
-                }
-                elsif($rItem->[0] eq '-') {
-                    substr($sFmtRes, $rItem->[1], $rItem->[2]) = 
-                        ($iData > 0)? '': (($iData==0)? '':'-');
-                }
-                elsif($rItem->[0] eq '@') {
+                    $iPPos = $iLen;
+                } elsif ($rItem->[0] eq '+') {
+                    substr($sFmtRes, $rItem->[1], $rItem->[2]) =
+                      ($iData > 0) ? '+' : (($iData == 0) ? '+' : '-');
+                } elsif ($rItem->[0] eq '-') {
+                    substr($sFmtRes, $rItem->[1], $rItem->[2]) =
+                      ($iData > 0) ? '' : (($iData == 0) ? '' : '-');
+                } elsif ($rItem->[0] eq '@') {
                     substr($sFmtRes, $rItem->[1], $rItem->[2]) = $iData;
-                }
-                elsif($rItem->[0] eq '*') {
-                    substr($sFmtRes, $rItem->[1], $rItem->[2]) = ''; #REMOVE
-                }
-                elsif(($rItem->[0] eq "\xA2\xA4") or ($rItem->[0] eq 
"\xA2\xA5") or
-                      ($rItem->[0] eq "\x81\xA2") or ($rItem->[0] eq 
"\x81\xA3") ){
+                } elsif ($rItem->[0] eq '*') {
+                    substr($sFmtRes, $rItem->[1], $rItem->[2]) = '';    #REMOVE
+                } elsif (($rItem->[0] eq "\xA2\xA4")
+                    or ($rItem->[0] eq "\xA2\xA5")
+                    or ($rItem->[0] eq "\x81\xA2")
+                    or ($rItem->[0] eq "\x81\xA3")) {
                     substr($sFmtRes, $rItem->[1], $rItem->[2]) = $rItem->[0];
-                }
-                elsif(($rItem->[0] eq '(') or ($rItem->[0] eq ')')){
+                } elsif (($rItem->[0] eq '(') or ($rItem->[0] eq ')')) {
                     substr($sFmtRes, $rItem->[1], $rItem->[2]) = $rItem->[0];
-                }
-                else {
-                    if($iLen>0) {
-                        if($iIt <= 0) {
+                } else {
+                    if ($iLen > 0) {
+                        if ($iIt <= 0) {
                             $sRep = substr($sNumRes, 0, $iLen);
                             $iLen = 0;
-                        }
-                        else {
+                        } else {
                             my $iReal = length($rItem->[0]);
-                            if($iPPos >= 0) {
+                            if ($iPPos >= 0) {
                                 my $sWkF = $rItem->[0];
-                                $sWkF=~s/^#+//;
+                                $sWkF =~ s/^#+//;
                                 $iReal = length($sWkF);
-                                $iReal = ($iLen <=$iReal)? $iLen:$iReal;
-                            }
-                            else {
-                                $iReal = ($iLen <=$iReal)? $iLen:$iReal;
+                                $iReal = ($iLen <= $iReal) ? $iLen : $iReal;
+                            } else {
+                                $iReal = ($iLen <= $iReal) ? $iLen : $iReal;
                             }
                             $sRep = substr($sNumRes, $iLen - $iReal, $iReal);
-                            $iLen -=$iReal;
+                            $iLen -= $iReal;
                         }
-                    }
-                    else {
-                            $sRep = '';
+                    } else {
+                        $sRep = '';
                     }
                     substr($sFmtRes, $rItem->[1], $rItem->[2]) = "\x00" . 
$sRep;
                 }
             }
-            $sRep = ($iLen > 0)?substr($sNumRes, 0, $iLen) : '';
+            $sRep = ($iLen > 0) ? substr($sNumRes, 0, $iLen) : '';
             $sFmtRes =~ s/\x00/$sRep/;
             $sFmtRes =~ s/\x00//g;
         }
-    }
-    else {
-       my $iAtMk = 0;
-        for(my $iIt=$#aRep; $iIt>=0;$iIt--) {
+    } else {
+        my $iAtMk = 0;
+        for (my $iIt = $#aRep ; $iIt >= 0 ; $iIt--) {
             my $rItem = $aRep[$iIt];
-            if($rItem->[0] eq '@') {
+            if ($rItem->[0] eq '@') {
                 substr($sFmtRes, $rItem->[1], $rItem->[2]) = $iData;
                 $iAtMk++;
-            }
-            else {
+            } else {
                 substr($sFmtRes, $rItem->[1], $rItem->[2]) = '';
             }
         }
-        $sFmtRes = $iData unless($iAtMk);
+        $sFmtRes = $iData unless ($iAtMk);
     }
-    return wantarray()? ($sFmtRes, $sColor) : $sFmtRes;
+    return wantarray() ? ($sFmtRes, $sColor) : $sFmtRes;
 }
+
 #------------------------------------------------------------------------------
 # AddComma (for Spreadsheet::XLSX::Utility)
 #------------------------------------------------------------------------------
 sub AddComma {
-    my($sNum) = @_;
+    my ($sNum) = @_;
 
-    if($sNum=~ /^([^\d]*)(\d\d\d\d+)(\.*.*)$/) {
-        my($sPre, $sObj, $sAft) =($1, $2, $3);
-        for(my $i=length($sObj)-3;$i>0; $i-=3) {
+    if ($sNum =~ /^([^\d]*)(\d\d\d\d+)(\.*.*)$/) {
+        my ($sPre, $sObj, $sAft) = ($1, $2, $3);
+        for (my $i = length($sObj) - 3 ; $i > 0 ; $i -= 3) {
             substr($sObj, $i, 0) = ',';
         }
         return $sPre . $sObj . $sAft;
-    }
-    else {
+    } else {
         return $sNum;
     }
 }
+
 #------------------------------------------------------------------------------
 # MakeBun (for Spreadsheet::XLSX::Utility)
 #------------------------------------------------------------------------------
 sub MakeBun {
-    my($sFmt, $iData, $iFlg) = @_;
+    my ($sFmt, $iData, $iFlg) = @_;
     my $iBunbo;
     my $iShou;
 
-#1. Init
-#print "FLG: $iFlg\n";
-    if($iFlg) {
+    #1. Init
+    #print "FLG: $iFlg\n";
+    if ($iFlg) {
         $iShou = $iData - int($iData);
-        return '' if($iShou == 0);
-    }
-    else {
+        return '' if ($iShou == 0);
+    } else {
         $iShou = $iData;
     }
     $iShou = abs($iShou);
     my $sSWk;
 
-#2.Calc BUNBO
-#2.1 BUNBO defined
-    if($sFmt =~ /\/(\d+)$/) {
+    #2.Calc BUNBO
+    #2.1 BUNBO defined
+    if ($sFmt =~ /\/(\d+)$/) {
         $iBunbo = $1;
-        return sprintf("%d/%d", $iShou*$iBunbo, $iBunbo);
-    }
-    else {
-#2.2 Calc BUNBO
+        return sprintf("%d/%d", $iShou * $iBunbo, $iBunbo);
+    } else {
+
+        #2.2 Calc BUNBO
         $sFmt =~ /\/(\?+)$/;
         my $iKeta = length($1);
-        my $iSWk = 1;
-        my $sSWk = '';
+        my $iSWk  = 1;
+        my $sSWk  = '';
         my $iBunsi;
-        for(my $iBunbo = 2;$iBunbo<10**$iKeta;$iBunbo++) {
-            $iBunsi = int($iShou*$iBunbo + 0.5);
-            my $iCmp = abs($iShou - ($iBunsi/$iBunbo));
-            if($iCmp < $iSWk) {
-                $iSWk =$iCmp;
+        for (my $iBunbo = 2 ; $iBunbo < 10**$iKeta ; $iBunbo++) {
+            $iBunsi = int($iShou * $iBunbo + 0.5);
+            my $iCmp = abs($iShou - ($iBunsi / $iBunbo));
+            if ($iCmp < $iSWk) {
+                $iSWk = $iCmp;
                 $sSWk = sprintf("%d/%d", $iBunsi, $iBunbo);
-                last if($iSWk==0);
+                last if ($iSWk == 0);
             }
         }
         return $sSWk;
     }
 }
+
 #------------------------------------------------------------------------------
 # MakeE (for Spreadsheet::XLSX::Utility)
 #------------------------------------------------------------------------------
 sub MakeE {
-    my($sFmt, $iData) = @_;
+    my ($sFmt, $iData) = @_;
 
-    $sFmt=~/(([#0]*)[\.]?[#0]*)([eE])([\+\-][0#]+)/;
-    my($sKari, $iKeta, $sE, $sSisu) = ($1, length($2), $3, $4);
-    $iKeta = 1 if($iKeta<=0);
+    $sFmt =~ /(([#0]*)[\.]?[#0]*)([eE])([\+\-][0#]+)/;
+    my ($sKari, $iKeta, $sE, $sSisu) = ($1, length($2), $3, $4);
+    $iKeta = 1 if ($iKeta <= 0);
 
     my $iLog10 = 0;
-    $iLog10 = ($iData == 0)? 0 : (log(abs($iData))/ log(10));
-    $iLog10 = (int($iLog10 / $iKeta) + 
-            ((($iLog10 - int($iLog10 / $iKeta))<0)? -1: 0)) *$iKeta;
+    $iLog10 = ($iData == 0) ? 0 : (log(abs($iData)) / log(10));
+    $iLog10 = (int($iLog10 / $iKeta) + ((($iLog10 - int($iLog10 / $iKeta)) < 
0) ? -1 : 0)) * $iKeta;
 
-    my $sUe = ExcelFmt($sKari, $iData*(10**($iLog10*-1)),0);
+    my $sUe = ExcelFmt($sKari, $iData * (10**($iLog10 * -1)), 0);
     my $sShita = ExcelFmt($sSisu, $iLog10, 0);
     return $sUe . $sE . $sShita;
 }
+
 #------------------------------------------------------------------------------
 # LeapYear (for Spreadsheet::XLSX::Utility)
 #------------------------------------------------------------------------------
 sub LeapYear {
-    my($iYear)=@_;
-    return 1 if($iYear==1900); #Special for Excel
-    return ((($iYear % 4)==0) && (($iYear % 100) || ($iYear % 400)==0))? 1: 0;
+    my ($iYear) = @_;
+    return 1 if ($iYear == 1900);    #Special for Excel
+    return ((($iYear % 4) == 0) && (($iYear % 100) || ($iYear % 400) == 0)) ? 
1 : 0;
 }
+
 #------------------------------------------------------------------------------
 # LocaltimeExcel (for Spreadsheet::XLSX::Utility)
 #------------------------------------------------------------------------------
 sub LocaltimeExcel {
-    my($iSec, $iMin, $iHour, $iDay, $iMon, $iYear, $iMSec, $flg1904) = @_;
+    my ($iSec, $iMin, $iHour, $iDay, $iMon, $iYear, $iMSec, $flg1904) = @_;
 
-#0. Init
+    #0. Init
     $iMon++;
-    $iYear+=1900;
+    $iYear += 1900;
 
-#1. Calc Time
+    #1. Calc Time
     my $iTime;
-    $iTime =$iHour;
-    $iTime *=60;
-    $iTime +=$iMin;
-    $iTime *=60;
-    $iTime +=$iSec;
-    $iTime += $iMSec/1000.0 if(defined($iMSec)) ;
-    $iTime /= 86400.0;      #3600*24(1day in seconds)
+    $iTime = $iHour;
+    $iTime *= 60;
+    $iTime += $iMin;
+    $iTime *= 60;
+    $iTime += $iSec;
+    $iTime += $iMSec / 1000.0 if (defined($iMSec));
+    $iTime /= 86400.0;    #3600*24(1day in seconds)
     my $iY;
     my $iYDays;
 
-#2. Calc Days
-    if($flg1904) {
+    #2. Calc Days
+    if ($flg1904) {
         $iY = 1904;
         $iTime--;         #Start from Jan 1st
         $iYDays = 366;
+    } else {
+        $iY     = 1900;
+        $iYDays = 366;    #In Excel 1900 is leap year (That's not TRUE!)
     }
-    else {
-        $iY = 1900;
-        $iYDays = 366;  #In Excel 1900 is leap year (That's not TRUE!)
-    }
-    while($iY<$iYear) {
+    while ($iY < $iYear) {
         $iTime += $iYDays;
         $iY++;
-        $iYDays = (LeapYear($iY))? 366: 365;
+        $iYDays = (LeapYear($iY)) ? 366 : 365;
     }
-    for(my $iM=1;$iM < $iMon; $iM++){
-        if($iM == 1 || $iM == 3 || $iM == 5 || $iM == 7 || $iM == 8
-            || $iM == 10 || $iM == 12) {
+    for (my $iM = 1 ; $iM < $iMon ; $iM++) {
+        if (   $iM == 1
+            || $iM == 3
+            || $iM == 5
+            || $iM == 7
+            || $iM == 8
+            || $iM == 10
+            || $iM == 12) {
             $iTime += 31;
-        }
-        elsif($iM == 4 || $iM == 6 || $iM == 9 || $iM == 11) {
+        } elsif ($iM == 4 || $iM == 6 || $iM == 9 || $iM == 11) {
             $iTime += 30;
-        }
-        elsif($iM == 2) {
-            $iTime += (LeapYear($iYear))? 29: 28;
+        } elsif ($iM == 2) {
+            $iTime += (LeapYear($iYear)) ? 29 : 28;
         }
     }
-    $iTime+=$iDay;
+    $iTime += $iDay;
     return $iTime;
 }
+
 #------------------------------------------------------------------------------
 # ExcelLocaltime (for Spreadsheet::XLSX::Utility)
 #------------------------------------------------------------------------------
 sub ExcelLocaltime {
-  my($dObj, $flg1904) = @_;
-  my($iSec, $iMin, $iHour, $iDay, $iMon, $iYear, $iwDay, $iMSec);
-  my($iDt, $iTime, $iYDays);
-
-  $iDt  = int($dObj);
-  $iTime = $dObj - $iDt;
-
-#1. Calc Days
-  if($flg1904) {
-    $iYear = 1904;
-    $iDt++;         #Start from Jan 1st
-    $iYDays = 366;
-    $iwDay = (($iDt+4) % 7);
-  }
-  else {
-    $iYear = 1900;
-    $iYDays = 366;  #In Excel 1900 is leap year (That's not TRUE!)
-    $iwDay = (($iDt+6) % 7);
-  }
-  while($iDt > $iYDays) {
-    $iDt -= $iYDays;
-    $iYear++;
-    $iYDays = ((($iYear % 4)==0) && 
-        (($iYear % 100) || ($iYear % 400)==0))? 366: 365;
-  }
-  $iYear -= 1900;
-  for($iMon=1;$iMon < 12; $iMon++){
-    my $iMD;
-    if($iMon == 1 || $iMon == 3 || $iMon == 5 || $iMon == 7 || $iMon == 8
-        || $iMon == 10 || $iMon == 12) {
-        $iMD = 31;
+    my ($dObj, $flg1904) = @_;
+    my ($iSec, $iMin, $iHour, $iDay, $iMon, $iYear, $iwDay, $iMSec);
+    my ($iDt, $iTime, $iYDays);
+
+    $iDt   = int($dObj);
+    $iTime = $dObj - $iDt;
+
+    #1. Calc Days
+    if ($flg1904) {
+        $iYear = 1904;
+        $iDt++;    #Start from Jan 1st
+        $iYDays = 366;
+        $iwDay  = (($iDt + 4) % 7);
+    } else {
+        $iYear  = 1900;
+        $iYDays = 366;                #In Excel 1900 is leap year (That's not 
TRUE!)
+        $iwDay  = (($iDt + 6) % 7);
     }
-    elsif($iMon == 4 || $iMon == 6 || $iMon == 9 || $iMon == 11) {
-        $iMD = 30;
+    while ($iDt > $iYDays) {
+        $iDt -= $iYDays;
+        $iYear++;
+        $iYDays =
+          ((($iYear % 4) == 0) && (($iYear % 100) || ($iYear % 400) == 0)) ? 
366 : 365;
     }
-    elsif($iMon == 2) {
-        $iMD = (($iYear % 4) == 0)? 29: 28;
+    $iYear -= 1900;
+    for ($iMon = 1 ; $iMon < 12 ; $iMon++) {
+        my $iMD;
+        if (   $iMon == 1
+            || $iMon == 3
+            || $iMon == 5
+            || $iMon == 7
+            || $iMon == 8
+            || $iMon == 10
+            || $iMon == 12) {
+            $iMD = 31;
+        } elsif ($iMon == 4 || $iMon == 6 || $iMon == 9 || $iMon == 11) {
+            $iMD = 30;
+        } elsif ($iMon == 2) {
+            $iMD = (($iYear % 4) == 0) ? 29 : 28;
+        }
+        last if ($iDt <= $iMD);
+        $iDt -= $iMD;
     }
-    last if($iDt <= $iMD);
-    $iDt -= $iMD;
-  }
-
-#2. Calc Time
-  $iDay = $iDt;
-  $iTime += (0.0005 / 86400.0);
-  $iTime*=24.0;
-  $iHour = int($iTime);
-  $iTime -= $iHour;
-  $iTime *= 60.0;
-  $iMin  = int($iTime);
-  $iTime -= $iMin;
-  $iTime *= 60.0;
-  $iSec  = int($iTime);
-  $iTime -= $iSec;
-  $iTime *= 1000.0;
-  $iMSec = int($iTime);
-    
-  return ($iSec, $iMin, $iHour, $iDay, $iMon-1, $iYear, $iwDay, $iMSec);
+
+    #2. Calc Time
+    $iDay = $iDt;
+    $iTime += (0.0005 / 86400.0);
+    $iTime *= 24.0;
+    $iHour = int($iTime);
+    $iTime -= $iHour;
+    $iTime *= 60.0;
+    $iMin = int($iTime);
+    $iTime -= $iMin;
+    $iTime *= 60.0;
+    $iSec = int($iTime);
+    $iTime -= $iSec;
+    $iTime *= 1000.0;
+    $iMSec = int($iTime);
+
+    return ($iSec, $iMin, $iHour, $iDay, $iMon - 1, $iYear, $iwDay, $iMSec);
 }
+
 # -----------------------------------------------------------------------------
 # col2int (for Spreadsheet::XLSX::Utility)
 #------------------------------------------------------------------------------
 # converts a excel row letter into an int for use in an array
 sub col2int {
-    my $result = 0 ;
-    my $str = shift ;
-   my $incr = 0 ;
+    my $result = 0;
+    my $str    = shift;
+    my $incr   = 0;
 
-    for(my $i = length($str) ; $i > 0 ; $i--) {
-        my $char = substr( $str, $i-1) ;
+    for (my $i = length($str) ; $i > 0 ; $i--) {
+        my $char = substr($str, $i - 1);
         my $curr += ord(lc($char)) - ord('a') + 1;
-        $curr *= $incr if( $incr) ;
-        $result += $curr ;
-        $incr += 26 ;
+        $curr *= $incr if ($incr);
+        $result += $curr;
+        $incr   += 26;
     }
+
     # this is one out as we range 0..x-1 not 1..x
-    $result-- ;
+    $result--;
 
-    return $result ;
+    return $result;
 }
+
 # -----------------------------------------------------------------------------
 # int2col (for Spreadsheet::XLSX::Utility)
 #------------------------------------------------------------------------------
@@ -859,16 +792,17 @@ sub col2int {
 # @returns string, column name
 #
 sub int2col {
-   my $out = "" ;
-   my $val = shift ;
-   
-   do {
-      $out .= chr(( $val % 26) + ord('A')) ;
-      $val = int( $val / 26) - 1 ;
-   } while( $val >= 0) ;
-   
-   return reverse $out ;
+    my $out = "";
+    my $val = shift;
+
+    do {
+        $out .= chr(($val % 26) + ord('A'));
+        $val = int($val / 26) - 1;
+    } while ($val >= 0);
+
+    return reverse $out;
 }
+
 # -----------------------------------------------------------------------------
 # sheetRef (for Spreadsheet::XLSX::Utility)
 #------------------------------------------------------------------------------
@@ -880,20 +814,21 @@ sub int2col {
 # @returns an array - 2 elements - column, row, or undefined
 #
 sub sheetRef {
-    my $str = shift ;
-    my @ret ;
+    my $str = shift;
+    my @ret;
 
-    $str =~ m/^(\D+)(\d+)$/ ;
+    $str =~ m/^(\D+)(\d+)$/;
 
-    if( $1 && $2) {
-        push( @ret, $2 -1, col2int($1)) ;
+    if ($1 && $2) {
+        push(@ret, $2 - 1, col2int($1));
     }
-    if( $ret[0] < 0) {
-        undef @ret ;
+    if ($ret[0] < 0) {
+        undef @ret;
     }
 
-    return @ret ;
+    return @ret;
 }
+
 # -----------------------------------------------------------------------------
 # xls2csv (for Spreadsheet::XLSX::Utility)
 #------------------------------------------------------------------------------
@@ -904,124 +839,125 @@ sub sheetRef {
 # @returns string containing a chunk of csv
 #
 sub xls2csv {
-   my ($filename, $regions, $rotate) = @_ ;
-   my $sheet = 0 ;
-   my $output = "" ;   
-   
-   # extract any sheet number from the region string
-   $regions =~ m/^(\d+)-(.*)/ ;
-
-   if( $2) {
-      $sheet = $1 - 1 ;
-      $regions = $2 ;
+    my ($filename, $regions, $rotate) = @_;
+    my $sheet  = 0;
+    my $output = "";
+
+    # extract any sheet number from the region string
+    $regions =~ m/^(\d+)-(.*)/;
+
+    if ($2) {
+        $sheet   = $1 - 1;
+        $regions = $2;
     }
 
     # now extract the start and end regions
-    $regions =~ m/(.*):(.*)/ ;
+    $regions =~ m/(.*):(.*)/;
 
-    if( !$1 || !$2) {
+    if (!$1 || !$2) {
         print STDERR "Bad Params";
-        return "" ;
+        return "";
     }
 
-   my @start = sheetRef( $1) ;
-   my @end = sheetRef( $2) ;
-   if( !@start) {
+    my @start = sheetRef($1);
+    my @end   = sheetRef($2);
+    if (!@start) {
         print STDERR "Bad coorinates - $1";
-        return "" ;
-   }
-   if( !@end) {
+        return "";
+    }
+    if (!@end) {
         print STDERR "Bad coorinates - $2";
-        return "" ;
-   }
-   
-   if( $start[1] > $end[1]) {
+        return "";
+    }
+
+    if ($start[1] > $end[1]) {
         print STDERR "Bad COLUMN ordering\n";
         print STDERR "Start column " . int2col($start[1]);
         print STDERR " after end column " . int2col($end[1]) . "\n";
-        return "" ;
-   }
-   if( $start[0] > $end[0]) {
+        return "";
+    }
+    if ($start[0] > $end[0]) {
         print STDERR "Bad ROW ordering\n";
         print STDERR "Start row " . ($start[0] + 1);
         print STDERR " after end row " . ($end[0] + 1) . "\n";
-        exit ;
-   }
-   
-   # start the excel object now
-   my $oExcel = new Spreadsheet::XLSX ;
-   my $oBook = $oExcel->Parse( $filename) ;
-   # open the sheet
-   my $oWkS = $oBook->{Worksheet}[ $sheet] ;
-
-   # now check that the region exists in the file
-   # if not trucate to the possible region
-   # output a warning msg
-   if( $start[1] < $oWkS->{MinCol}) {
-        print STDERR int2col( $start[1]) . " < min col " . int2col( 
$oWkS->{MinCol}) . " Reseting\n";
-        $start[1] = $oWkS->{MinCol} ;
-   }
-   if( $end[1] > $oWkS->{MaxCol}) {
-        print STDERR int2col( $end[1]) . " > max col " . int2col( 
$oWkS->{MaxCol}) . " Reseting\n" ;
-        $end[1] = $oWkS->{MaxCol} ;
-   }
-   if( $start[0] < $oWkS->{MinRow}) {
+        exit;
+    }
+
+    # start the excel object now
+    my $oExcel = new Spreadsheet::XLSX;
+    my $oBook  = $oExcel->Parse($filename);
+
+    # open the sheet
+    my $oWkS = $oBook->{Worksheet}[$sheet];
+
+    # now check that the region exists in the file
+    # if not trucate to the possible region
+    # output a warning msg
+    if ($start[1] < $oWkS->{MinCol}) {
+        print STDERR int2col($start[1]) . " < min col " . 
int2col($oWkS->{MinCol}) . " Reseting\n";
+        $start[1] = $oWkS->{MinCol};
+    }
+    if ($end[1] > $oWkS->{MaxCol}) {
+        print STDERR int2col($end[1]) . " > max col " . 
int2col($oWkS->{MaxCol}) . " Reseting\n";
+        $end[1] = $oWkS->{MaxCol};
+    }
+    if ($start[0] < $oWkS->{MinRow}) {
         print STDERR "" . ($start[0] + 1) . " < min row " . ($oWkS->{MinRow} + 
1) . " Reseting\n";
-        $start[0] = $oWkS->{MinCol} ;
-   }
-   if( $end[0] > $oWkS->{MaxRow}) {
+        $start[0] = $oWkS->{MinCol};
+    }
+    if ($end[0] > $oWkS->{MaxRow}) {
         print STDERR "" . ($end[0] + 1) . " > max row " . ($oWkS->{MaxRow} + 
1) . " Reseting\n";
-        $end[0] = $oWkS->{MaxRow} ;
-   
-   }
-
-   my $x1 = $start[1] ;
-   my $y1 = $start[0] ;
-   my $x2 = $end[1] ;
-   my $y2 = $end[0] ;
-
-    if( !$rotate) {       
-    for( my $y = $y1 ; $y <= $y2 ; $y++) {
-       for( my $x = $x1 ; $x <= $x2 ; $x++) {
-          my $cell = $oWkS->{Cells}[$y][$x] ;
-          $output .=  $cell->Value if(defined $cell);
-          $output .= "," if( $x != $x2) ;
-       }
-       $output .= "\n" ;
+        $end[0] = $oWkS->{MaxRow};
+
     }
-     } else {
-    for( my $x = $x1 ; $x <= $x2 ; $x++) {
-       for( my $y = $y1 ; $y <= $y2 ; $y++) {
-          my $cell = $oWkS->{Cells}[$y][$x] ;
-          $output .=  $cell->Value if(defined $cell);
-          $output .= "," if( $y != $y2) ;
-       }
-       $output .= "\n" ;
+
+    my $x1 = $start[1];
+    my $y1 = $start[0];
+    my $x2 = $end[1];
+    my $y2 = $end[0];
+
+    if (!$rotate) {
+        for (my $y = $y1 ; $y <= $y2 ; $y++) {
+            for (my $x = $x1 ; $x <= $x2 ; $x++) {
+                my $cell = $oWkS->{Cells}[$y][$x];
+                $output .= $cell->Value if (defined $cell);
+                $output .= "," if ($x != $x2);
+            }
+            $output .= "\n";
+        }
+    } else {
+        for (my $x = $x1 ; $x <= $x2 ; $x++) {
+            for (my $y = $y1 ; $y <= $y2 ; $y++) {
+                my $cell = $oWkS->{Cells}[$y][$x];
+                $output .= $cell->Value if (defined $cell);
+                $output .= "," if ($y != $y2);
+            }
+            $output .= "\n";
+        }
     }
-     }
-   
-   return $output ;
+
+    return $output;
 }
-sub unescape_HTML {
 
-       my $string = shift;
-       my %options = @_;
+sub unescape_HTML {
 
-       return $string if ($string eq '');
+    my $string  = shift;
+    my %options = @_;
 
-       $string =~ s/&quot;/"/g;
-       $string =~ s/&rsquo;/'/g;  
-       $string =~ s/&amp;/&/g; 
+    return $string if ($string eq '');
 
-       return $string if $options{textarea};  # for textboxes, we leave < and 
> as &lt; and &gt;
-                                               # so that people who enter 
"</textarea>" into 
-                                               # our text boxes can't break 
forms
+    $string =~ s/&quot;/"/g;
+    $string =~ s/&rsquo;/'/g;
+    $string =~ s/&amp;/&/g;
 
-       $string =~ s/&lt;/</g;
-       $string =~ s/&gt;/>/g;
+    return $string if $options{textarea};    # for textboxes, we leave < and > 
as &lt; and &gt;
+                                             # so that people who enter 
"</textarea>" into
+                                             # our text boxes can't break forms
 
+    $string =~ s/&lt;/</g;
+    $string =~ s/&gt;/>/g;
 
-       return $string;
+    return $string;
 }
 
 1;
diff --git a/t/1_____loreyna126.t b/t/1_____loreyna126.t
index ebc4b32..6ae54ba 100755
--- a/t/1_____loreyna126.t
+++ b/t/1_____loreyna126.t
@@ -1,19 +1,19 @@
-use Test::More tests => 3;
-
-BEGIN {
-
-       use Spreadsheet::XLSX;
-       use warnings;
-       
-       my $fn = __FILE__;
-       
-       $fn =~ s{t$}{xlsx};
-
-       my $excel = Spreadsheet::XLSX -> new ($fn);
-                       
-       ok (@{$excel -> {Worksheet}} == 3);     
-       ok ($excel -> {Worksheet} -> [0] -> {Name} eq 'POST_DSENDS');
-       ok ($excel -> {Worksheet} -> [0] -> {Cells} [112] [0] -> {Val} eq 'RCS 
Thrust Vector Uncertainties ');
-
-};
+use Test::More tests => 3;
+
+BEGIN {
+
+       use Spreadsheet::XLSX;
+       use warnings;
+       
+       my $fn = __FILE__;
+       
+       $fn =~ s{t$}{xlsx};
+
+       my $excel = Spreadsheet::XLSX -> new ($fn);
+                       
+       ok (@{$excel -> {Worksheet}} == 3);     
+       ok ($excel -> {Worksheet} -> [0] -> {Name} eq 'POST_DSENDS');
+       ok ($excel -> {Worksheet} -> [0] -> {Cells} [112] [0] -> {Val} eq 'RCS 
Thrust Vector Uncertainties ');
+
+};
  
\ No newline at end of file
diff --git a/t/2_____with_chart.t b/t/2_____with_chart.t
index bc8d8a2..3987e7d 100755
--- a/t/2_____with_chart.t
+++ b/t/2_____with_chart.t
@@ -1,22 +1,22 @@
-use Test::More tests => 6;
-
-BEGIN {
-
-       use Spreadsheet::XLSX;
-       use warnings;
-       
-       my $fn = __FILE__;
-       
-       $fn =~ s{t$}{xlsx};
-
-       my $excel = Spreadsheet::XLSX -> new ($fn);
-                       
-       ok (@{$excel -> {Worksheet}} == 4);     
-       ok ($excel -> {Worksheet} -> [0] -> {Name} eq 'Tabelle1');
-       ok ($excel -> {Worksheet} -> [0] -> {Cells} [0] [0] -> {Val} == 1);
-       ok ($excel -> {Worksheet} -> [0] -> {Cells} [0] [1] -> {Val} == 10);
-       ok ($excel -> {Worksheet} -> [0] -> {Cells} [1] [0] -> {Val} == 2);
-       ok ($excel -> {Worksheet} -> [0] -> {Cells} [1] [1] -> {Val} == 20);
-
-};
+use Test::More tests => 6;
+
+BEGIN {
+
+       use Spreadsheet::XLSX;
+       use warnings;
+       
+       my $fn = __FILE__;
+       
+       $fn =~ s{t$}{xlsx};
+
+       my $excel = Spreadsheet::XLSX -> new ($fn);
+                       
+       ok (@{$excel -> {Worksheet}} == 4);     
+       ok ($excel -> {Worksheet} -> [0] -> {Name} eq 'Tabelle1');
+       ok ($excel -> {Worksheet} -> [0] -> {Cells} [0] [0] -> {Val} == 1);
+       ok ($excel -> {Worksheet} -> [0] -> {Cells} [0] [1] -> {Val} == 10);
+       ok ($excel -> {Worksheet} -> [0] -> {Cells} [1] [0] -> {Val} == 2);
+       ok ($excel -> {Worksheet} -> [0] -> {Cells} [1] [1] -> {Val} == 20);
+
+};
  
\ No newline at end of file
diff --git a/t/empty_v_tag.t b/t/empty_v_tag.t
new file mode 100755
index 0000000..7f08a6e
--- /dev/null
+++ b/t/empty_v_tag.t
@@ -0,0 +1,13 @@
+use Test::More tests => 1;
+use Test::NoWarnings;
+
+BEGIN {
+
+       use Spreadsheet::XLSX;
+       use warnings;
+       
+       my $fn = __FILE__;
+       $fn =~ s{t$}{xlsx};
+
+       my $excel = Spreadsheet::XLSX->new($fn);
+};
diff --git a/t/empty_v_tag.xlsx b/t/empty_v_tag.xlsx
new file mode 100644
index 0000000..551dd76
Binary files /dev/null and b/t/empty_v_tag.xlsx differ
diff --git a/t/formats.t b/t/formats.t
new file mode 100755
index 0000000..bf866b9
--- /dev/null
+++ b/t/formats.t
@@ -0,0 +1,24 @@
+use Test::More tests => 10;
+
+BEGIN {
+
+       use Spreadsheet::XLSX;
+       use warnings;
+       
+       my $fn = __FILE__;
+       $fn =~ s{t$}{xlsx};
+
+       my $excel = Spreadsheet::XLSX->new($fn);
+    my $cells = $excel->{Worksheet}[0]{Cells};
+       ok ($cells->[0][0]->value() eq '2015-12-31',    'formatted date');
+       ok ($cells->[0][1]->value() eq '23:59',         'formatted time');
+    ok ($cells->[0][2]->value() eq '1.12',         'formatted default 
numeric');
+    ok ($cells->[0][2]->unformatted() eq '1.125',   'unformatted default 
numeric');
+    ok ($cells->[0][3]->value() eq '1.12',          'formatted 2-digit 
numeric');
+    ok ($cells->[0][3]->unformatted() eq '1.125',   'unformatted 2-digit 
numeric');
+    ok ($cells->[0][4]->value() eq 'Test',          'formatted default text');
+    ok ($cells->[0][4]->unformatted() eq 'Test',    'unformatted default 
text');
+    ok ($cells->[0][5]->value() eq '1.2345',        'formatted number in text 
field');
+    ok ($cells->[0][5]->unformatted() eq '1.2345',  'unformatted number in 
text field');
+};
+ 
diff --git a/t/formats.xlsx b/t/formats.xlsx
new file mode 100755
index 0000000..edde219
Binary files /dev/null and b/t/formats.xlsx differ
diff --git a/t/kwalitee.t b/t/kwalitee.t
new file mode 100644
index 0000000..be2eed4
--- /dev/null
+++ b/t/kwalitee.t
@@ -0,0 +1,9 @@
+use Test::More;
+BEGIN {
+    plan skip_all => 'these tests are for release candidate testing'
+        unless $ENV{RELEASE_TESTING};
+}
+ 
+use Test::Kwalitee 'kwalitee_ok';
+kwalitee_ok();
+done_testing;
diff --git a/t/missing_styles.t b/t/missing_styles.t
new file mode 100755
index 0000000..7f08a6e
--- /dev/null
+++ b/t/missing_styles.t
@@ -0,0 +1,13 @@
+use Test::More tests => 1;
+use Test::NoWarnings;
+
+BEGIN {
+
+       use Spreadsheet::XLSX;
+       use warnings;
+       
+       my $fn = __FILE__;
+       $fn =~ s{t$}{xlsx};
+
+       my $excel = Spreadsheet::XLSX->new($fn);
+};
diff --git a/t/missing_styles.xlsx b/t/missing_styles.xlsx
new file mode 100644
index 0000000..4ac6671
Binary files /dev/null and b/t/missing_styles.xlsx differ

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-perl/packages/libspreadsheet-xlsx-perl.git

_______________________________________________
Pkg-perl-cvs-commits mailing list
Pkg-perl-cvs-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits

Reply via email to