[Feature]add MT2731_MP2_MR2_SVN388 baseline version
Change-Id: Ief04314834b31e27effab435d3ca8ba33b499059
diff --git a/src/bach/build.bach/tools/perl/Spreadsheet/ParseExcel/FmtJapan.pm b/src/bach/build.bach/tools/perl/Spreadsheet/ParseExcel/FmtJapan.pm
new file mode 100644
index 0000000..71f2b16
--- /dev/null
+++ b/src/bach/build.bach/tools/perl/Spreadsheet/ParseExcel/FmtJapan.pm
@@ -0,0 +1,210 @@
+package Spreadsheet::ParseExcel::FmtJapan;
+use utf8;
+
+###############################################################################
+#
+# Spreadsheet::ParseExcel::FmtJapan - A class for Cell formats.
+#
+# Used in conjunction with Spreadsheet::ParseExcel.
+#
+# Copyright (c) 2009 John McNamara
+# Copyright (c) 2006-2008 Gabor Szabo
+# Copyright (c) 2000-2006 Kawai Takanori
+#
+# perltidy with standard settings.
+#
+# Documentation after __END__
+#
+
+use strict;
+use warnings;
+
+use Encode qw(find_encoding decode);
+use base 'Spreadsheet::ParseExcel::FmtDefault';
+our $VERSION = '0.59';
+
+my %FormatTable = (
+ 0x00 => '@',
+ 0x01 => '0',
+ 0x02 => '0.00',
+ 0x03 => '#,##0',
+ 0x04 => '#,##0.00',
+ 0x05 => '(\\#,##0_);(\\#,##0)',
+ 0x06 => '(\\#,##0_);[RED](\\#,##0)',
+ 0x07 => '(\\#,##0.00_);(\\#,##0.00_)',
+ 0x08 => '(\\#,##0.00_);[RED](\\#,##0.00_)',
+ 0x09 => '0%',
+ 0x0A => '0.00%',
+ 0x0B => '0.00E+00',
+ 0x0C => '# ?/?',
+ 0x0D => '# ??/??',
+
+ # 0x0E => 'm/d/yy',
+ 0x0E => 'yyyy/m/d',
+ 0x0F => 'd-mmm-yy',
+ 0x10 => 'd-mmm',
+ 0x11 => 'mmm-yy',
+ 0x12 => 'h:mm AM/PM',
+ 0x13 => 'h:mm:ss AM/PM',
+ 0x14 => 'h:mm',
+ 0x15 => 'h:mm:ss',
+
+ # 0x16 => 'm/d/yy h:mm',
+ 0x16 => 'yyyy/m/d h:mm',
+
+ #0x17-0x24 -- Differs in Natinal
+ 0x1E => 'm/d/yy',
+ 0x1F => 'yyyy"年"m"月"d"日"',
+ 0x20 => 'h"時"mm"分"',
+ 0x21 => 'h"時"mm"分"ss"秒"',
+
+ #0x17-0x24 -- Differs in Natinal
+ 0x25 => '(#,##0_);(#,##0)',
+ 0x26 => '(#,##0_);[RED](#,##0)',
+ 0x27 => '(#,##0.00);(#,##0.00)',
+ 0x28 => '(#,##0.00);[RED](#,##0.00)',
+ 0x29 => '_(*#,##0_);_(*(#,##0);_(*"-"_);_(@_)',
+ 0x2A => '_(\\*#,##0_);_(\\*(#,##0);_(*"-"_);_(@_)',
+ 0x2B => '_(*#,##0.00_);_(*(#,##0.00);_(*"-"??_);_(@_)',
+ 0x2C => '_(\\*#,##0.00_);_(\\*(#,##0.00);_(*"-"??_);_(@_)',
+ 0x2D => 'mm:ss',
+ 0x2E => '[h]:mm:ss',
+ 0x2F => 'mm:ss.0',
+ 0x30 => '##0.0E+0',
+ 0x31 => '@',
+
+ 0x37 => 'yyyy"年"m"月"',
+ 0x38 => 'm"月"d"日"',
+ 0x39 => 'ge.m.d',
+ 0x3A => 'ggge"年"m"月"d"日"',
+);
+
+#------------------------------------------------------------------------------
+# new (for Spreadsheet::ParseExcel::FmtJapan)
+#------------------------------------------------------------------------------
+sub new {
+ my ( $class, %args ) = @_;
+ my $encoding = $args{Code} || $args{encoding};
+ my $self = { Code => $encoding };
+ if($encoding){
+ $self->{encoding} = find_encoding($encoding eq 'sjis' ? 'cp932' : $encoding)
+ or do{
+ require Carp;
+ Carp::croak(qq{Unknown encoding '$encoding'});
+ };
+ }
+ return bless $self, $class;
+}
+
+#------------------------------------------------------------------------------
+# TextFmt (for Spreadsheet::ParseExcel::FmtJapan)
+#------------------------------------------------------------------------------
+sub TextFmt {
+ my ( $self, $text, $input_encoding ) = @_;
+ if(!defined $input_encoding){
+ $input_encoding = 'utf8';
+ }
+ elsif($input_encoding eq '_native_'){
+ $input_encoding = 'cp932'; # Shift_JIS in Microsoft products
+ }
+ $text = decode($input_encoding, $text);
+ return $self->{Code} ? $self->{encoding}->encode($text) : $text;
+}
+#------------------------------------------------------------------------------
+# FmtStringDef (for Spreadsheet::ParseExcel::FmtJapan)
+#------------------------------------------------------------------------------
+sub FmtStringDef {
+ my ( $self, $format_index, $book ) = @_;
+ return $self->SUPER::FmtStringDef( $format_index, $book, \%FormatTable );
+}
+
+#------------------------------------------------------------------------------
+# CnvNengo (for Spreadsheet::ParseExcel::FmtJapan)
+#------------------------------------------------------------------------------
+
+# Convert A.D. into Japanese Nengo (aka Gengo)
+
+my @Nengo = (
+ {
+ name => '平成', # Heisei
+ abbr_name => 'H',
+
+ base => 1988,
+ start => 19890108,
+ },
+ {
+ name => '昭和', # Showa
+ abbr_name => 'S',
+
+ base => 1925,
+ start => 19261225,
+ },
+ {
+ name => '大正', # Taisho
+ abbr_name => 'T',
+
+ base => 1911,
+ start => 19120730,
+ },
+ {
+ name => '明治', # Meiji
+ abbr_name => 'M',
+
+ base => 1867,
+ start => 18680908,
+ },
+);
+
+# Usage: CnvNengo(name => @tm) or CnvNeng(abbr_name => @tm)
+sub CnvNengo {
+ my ( $kind, @tm ) = @_;
+ my $year = $tm[5] + 1900;
+ my $wk = ($year * 10000) + ($tm[4] * 100) + ($tm[3] * 1);
+ #my $wk = sprintf( '%04d%02d%02d', $year, $tm[4], $tm[3] );
+ foreach my $nengo(@Nengo){
+ if( $wk >= $nengo->{start} ){
+ return $nengo->{$kind} . ($year - $nengo->{base});
+ }
+ }
+ return $year;
+}
+
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+Spreadsheet::ParseExcel::FmtJapan - A class for Cell formats.
+
+=head1 SYNOPSIS
+
+See the documentation for Spreadsheet::ParseExcel.
+
+=head1 DESCRIPTION
+
+This module is used in conjunction with Spreadsheet::ParseExcel. See the documentation for Spreadsheet::ParseExcel.
+
+=head1 AUTHOR
+
+Maintainer 0.40+: John McNamara jmcnamara@cpan.org
+
+Maintainer 0.27-0.33: Gabor Szabo szabgab@cpan.org
+
+Original author: Kawai Takanori kwitknr@cpan.org
+
+=head1 COPYRIGHT
+
+Copyright (c) 2009-2010 John McNamara
+
+Copyright (c) 2006-2008 Gabor Szabo
+
+Copyright (c) 2000-2006 Kawai Takanori
+
+All rights reserved.
+
+You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.
+
+=cut