r661 - in packages: . libspreadsheet-parseexcel-perl libspreadsheet-parseexcel-perl/branches libspreadsheet-parseexcel-perl/branches/upstream libspreadsheet-parseexcel-perl/branches/upstream/current libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel libspreadsheet-parseexcel-perl/branches/upstream/current/sample libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel

Gunnar Wolf gwolf at costa.debian.org
Sun Jul 17 08:08:55 UTC 2005


Author: gwolf
Date: 2005-01-25 16:06:55 +0100 (Tue, 25 Jan 2005)
New Revision: 661

Added:
   packages/libspreadsheet-parseexcel-perl/
   packages/libspreadsheet-parseexcel-perl/branches/
   packages/libspreadsheet-parseexcel-perl/branches/upstream/
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/CP932Excel.map
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/Changes
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/MANIFEST
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/META.yml
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/Makefile.PL
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel.pm
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/Dump.pm
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtDefault.pm
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtJapan.pm
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtJapan2.pm
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtUnicode.pm
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/SaveParser.pm
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/Utility.pm
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/README
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/README_Japan.htm
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/AuthorK.xls
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/AuthorK95.xls
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/FmtTest.xls
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Rich.xls
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test1904.xls
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test1904_95.xls
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test95.xls
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test95J.xls
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test97.xls
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test97J.xls
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/oem.xls
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Ilya.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/README
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/chkFmt.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/chkInfo.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpEx.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExH.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExHJ.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExJ.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExR.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExU.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpEx_2xml.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/iftest.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/iftestj.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_fmt
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_info
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_oem
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_rich
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_sample
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_samplej
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/sample.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/sampleOEM.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/sample_j.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/smpFile.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/xls2csv.pl
   packages/libspreadsheet-parseexcel-perl/branches/upstream/current/test.pl
   packages/libspreadsheet-parseexcel-perl/tags/
Log:
[svn-inject] Installing original source of libspreadsheet-parseexcel-perl

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/CP932Excel.map
===================================================================
(Binary files differ)


Property changes on: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/CP932Excel.map
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/Changes
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/Changes	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/Changes	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,242 @@
+Revision history for Perl extension Spreadsheet::ParseExcel.
+
+0.2603  Mon May 30, 2004
+    - Mod SaveParser : Apply a path from Eduardo J
+                        adding Protect feature
+                        (Thank you, Eduardo J for patch)
+    - Mod ParseExcel : Apply a path from C. Jon Larsen
+                        adding GetContent
+                        (Thank you, C. Jon Larsen)
+
+0.2602  Mon Jul 15, 2002
+    - Fix SaveParser : Mod hidden support(with 0 column width)
+                        (Thank you, HIROSHIGE,Shigeru for report)
+
+0.2601  Sat Jul 13, 2002
+    Thank you for Peter Marschall for PATCH.
+    - Mod ParseExcel : Add new methods
+    - Mod SaveParser : Add new methods
+
+    - Mod ParseExcel : Mod subHeader, subFooter
+                        (Thank you, RT? for report)
+    - Mod SaveParser : Add hidden support
+                        (Thank you, HIROSHIGE,Shigeru for report)
+    - Add new sample : Add  dmpEx_2xml.pl
+                        (Thank you, Khalid EZZARAOUI for new code)
+
+0.26  Sat Jun 1, 2002
+    Thank you for Peter Marschall.
+    - Mod ParseExcel : Add new interface
+    - Mod SaveParser : Add new interface
+
+0.25  Fri May  10, 2002
+    - Mod ParseExcel : Fix For SaveParser
+    - Mod SaveParser : Add Create
+                       Add page setting
+                       Add some documents
+
+0.2407 Mon Apr  24, 2002
+    - Mod Utility    : Fix Numeric format
+                        (Thank you, Jeff Shaffer for report)
+                       Fix MakeBun
+    - Mod ParseExcel : Fix Continue (COTINUE with no header)
+                        (Thank you, Tuneyosi Fukusima for report)
+                     : Add {Val} in sample :-)
+                        (Thank you, Ernst Kloppenburg for suggestion)
+
+0.2406 Mon Apr  8, 2002
+    - Mod Utility    : Fix $sNUMEXP
+                            (Thank you for Xavier Catteau for patch)
+                       Add col2int int2col sheetRef xls2csv
+                        (Thank you for Xavier Catteau for patch)
+    - Mod ParseExcel : Add file contents
+    - Mod SaveParser : Mod AddCell
+
+0.2405 Tue Jan 29, 2002
+    - Mod FmtDefault : Fix 0x01 (='0') format
+                        (Thank you Marc Pohl for report)
+    - Mod ParseExcel : Mod Parse Fh of CGI.pm and GLOB ref.
+                        (Thank you Nicholas Hamlin and Abe Daisuke for reports)
+                       Fix PrintArea detection
+                        (Thank you Todd A. Green for patch)
+                       Add  custom palette support
+                        (Thank you Florian Pflug for patch)
+                       Fix  _SetDimension prototype
+                        (Thank you David Dyck for patch)
+    - Mod SaveParser : Mod return value of SaveParser
+                        (Thank you Iceman for patch)
+    - Mod Utility    : Mod $iAftP manipulation
+                        (Thank you Stanislav Sukholet for patch)
+
+0.2404 Tue Jul 24  7:30:00 2001 - Tue Dec 4 11:00:00 2001
+    - Mod ParseExcel : Mod _SwapForUnicode for a string with odd length
+                        (Thank you, Mikhail Turenko)
+                     : Add GLOB reference support
+                        (Thank you, coral.)
+                     : Fix/Add Font name Unicode judge
+                        (Thank you, Mikhail Turenko, Alex Edelman)
+    - Mod Utility    : Fix Backslash problem
+                        (Thank you, Bruno Wolff III. And sorry for TOO LATE)
+                     : Fix add number expressions
+                        (Thank you, Jing Zhao)
+
+0.2403 Tue Jul 24 7:30:00 2001
+    - Mod FmtUnicode, FmtJapan, FmtJapan2 : Fix NL
+                        (Thank you, Jeremy Smartt)
+
+0.2402 Thu Jul 12 20:30:00 2001
+    - Mod Utility, FmtDefault :Fix format error
+                        (Thank you, Kevin Ko)
+    - Mod Utility :Mod for Japanese sign(triangle)
+
+0.2401 Mon Jul 9  19:00:00 2001
+    - Mod FmtUnicode :Mod alphanumeric in BIG5
+                        (Thank you, Kevin Ko)
+        Sorry, it is not effective (ToT)
+
+0.24 Wed Jul 5  06:30:00 2001
+    - Mod ParseExcel :Add OO style callback
+                        (Thank you, Ilya Sterin)
+    - Add sample/Ilya.pl :-)
+    - Mod ParseExcel : Mod use FmtDefault for PDK
+                        (Thank you, Maxime Alechine)
+
+0.2301 Tue Jun 26  8:00:00 2001
+    - Mod FmtDefault
+                    :Fix not convert undefined or '' string
+
+0.23 Thu Jun 21  21:00:00 2001
+    - Mod ParseExcel, FmtUnicode, FmtJapan, FmtJapan2 :
+                    :Fix Unicode Latin1 adapt
+                       (Thank you, Seiko Yamamura and Sadahiro)
+    - Mod ParseExcel : my(undef)  -> my($undef1) ...
+                       (Thank you, Alex)
+
+0.22.3 Thu May 16  8:00:00 2001
+    - Mod FmtUnicode : Fix code undefined
+    - Mod ParseExcel : Fix Marged area (row>255)
+                       (Thank you, Dmitriy Litovchin)
+
+0.22.2 Thu May 16  8:00:00 2001
+    - Mod ParseExcel : Fix Hidden RowHeight, ColWidht 
+                       (Thank you, Maxim Ovchinnikov)
+
+0.22.1 Wed May 14 20:35:00 2001
+    - Mod ParseExcel : Fix Continue (COTINUE with no header)
+                       (Thank you, Steve Sapovits)
+                     : Fix ignore Graph sheet
+                       (Thank you, Joel Defarge )
+    - Mod Utility : Fix eval at Conditiona-Format 
+                       (Thank you, Alok K. Dhir)
+
+0.22 Sat May 5 19:00:00 2001
+    - Add SaveParser : For DBD::Excel
+
+0.21.2 Tue May 1 7:00:00 2001
+    - Fix ParseExcel : MergedArea
+                       (Thank you, Bradley M. Handy )
+
+0.21.1 Sat Apr 29 14:00:00 2001
+    - Add ParseExcel : Rich text information support
+                       (Thank you, Vladimir Igrevsky)
+
+0.21 Sat Apr 24 18:00:00 2001
+    - Mod ParseExcel : Add New Feature for CellHandler
+                       (Thank you, Jeff Clark)
+    - Mod ParseExcel, FmtDefault, FmtJapan, Utility:
+                     : Expanding format information to support
+                       (Supported by Nippon-RAD OP Division)
+
+0.20.2 Wed Apr 18 9:00:00 2001
+    - Fix Utility : ExcelFmt (For Number format)
+                       (Thank you, Jeff Clark)
+
+0.20.1 Sun Apr 11 9:00:00 2001
+    - Fix FmtJapan, FmtJapan2 : TxtFmt
+    - Fix FmtDefault : ValFmt (for 'String' format')
+                       (Thank you, Fukusima, Tuneyosi)
+
+0.20  Mon Mar 30  20:00:00 2001
+    - Fix ParseExcel.pm : RK int minus 
+                       (Thank you, Morten Sickel)
+    - Mod ParseExcel.pm : Fix Font number but not complete
+                       (Thank you, Vladimir Igrevsky)
+    - Fix ParseExcel.pm : _convBIFF8 non conversion (LABEL, String...)
+                       (Thank you, Fukusima, Tuneyosi)
+    - Add pod : Limitaion with Spreadsheet::WriteExcel.pm
+                       (Thank you, Venkataramana Mokkapati)
+
+0.19  Mon Mar 26  12:00:00 2001
+    - Fix Utility.pm :Month short name 
+                       (Thank you, Morten Sickel)
+    - Fix Utility.pm :Formatting Error
+                       (Thank you, yusuf_najuddin)
+    - Fix FmtJapan2.pm: CP932Excel.map readable check
+                       (Thank you, Kawasaki)
+
+0.18  Sat Mar 18  16:00:00 2001
+    - Fix Excel4 file support
+    - Fix subLabel (Unicode)
+            (Thank you, yusuf_najmuddin)
+
+0.17  Wed Mar 12  9:00:00 2001
+    - Fix Utility.pm for Number format
+    - Fix FmtJapan2.pm to use FmtJapan
+            (Thank you, Kawasaki) 
+    - Fix Utility.pm for Number format (not Numeric)
+            (Thank you, John Dawson)
+    - Fix Format string with Chinese Character (in Excel95)
+
+0.16  Wed Mar 7  22:00:00 2001
+    - Fix Format String
+    - Avoding warnings
+            (Thank you Jimmy Sieben and Daniel Berger) 
+
+0.15  Wed Mar 6  10:00:00 2001
+    - Fix RK number
+            (Thank you Jimmy Sieben)
+    - Modify many internal functions!!
+    - Add Spreadsheet::ParseExcel::Utity for formatting!
+
+0.13  Sat Feb 21  20:40:00 2001
+    - Support Pps 'BOOK' (not 'Book') with OLE::Storage_Lite 0.07
+                             (Thank you, Punam Chordia )
+    - Modify Makefile.PL (define OLE::Storage_Lite Version)
+                             (Thank you, Aldo Calpini)
+    - Fix Conetinue ASCII-Unicode pattern
+                             (Thank you, Tim Wills)
+    - Add FmtUnicode sample :dmpExU.pl (Sorry and thank you, Mike Goblin)
+
+0.12  Sat Feb 5  11:00:00 2001
+    - Support Excel4 file (Thank you, Jeff Haferman and herbert )
+    - Add reference of scalar and IO::File object support in Parse
+                          (Thank you, Jeff Haferman)
+    - Fix Continue SST (Thank you, Gennadiy)
+    - Delete VBAMacros from sample/Excel/Test97j.xls and Test97.xls
+      avoiding virus check.
+                          (Thank you, Alfred Nathaniel)
+    - Fix weekday of ExcelLocaltime
+
+0.11  Sat Jan 26 14:00:00 2001
+    - Skip 0xEF to EOF(0x0A) (Thank you, Phil DiFalco)
+
+0.10  Mon Jan 15 12:00:00 2001
+    - Fix _subString, _subFormula  (Thank you, Ilter Cekic and Mike Edwards)
+
+0.09  Sat Dec 15 12:00:00 2000
+    - Fix Month name of FmtDefault.pm  (Thank you, Michael Edwards)
+    - Add FmtJapan2.pm
+    - Fix Slightly Bug
+
+0.08  Sat Nov 25 12:00:00 2000
+    - Fix RString, PackedString BUGS (Thank you, Kim Namsuk)
+    - Fix undefined function _subDefColW (Thank you, Hirofumi Morisada)
+
+0.07  Sat Nov 18 12:00:00 2000
+    - Change to use OLE::Storage_Lite
+    - Fix RString, PackedString BUGS (Thank you, Hirofumi Morisada)
+    - Fix and Add Formula String     (Thank you, Michael Edwards)
+
+0.05  Mon Oct  2 03:14:04 2000
+    - original version
+

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/MANIFEST
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/MANIFEST	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/MANIFEST	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,51 @@
+CP932Excel.map
+Changes
+MANIFEST
+Makefile.PL
+ParseExcel.pm
+ParseExcel/Dump.pm
+ParseExcel/FmtDefault.pm
+ParseExcel/FmtJapan.pm
+ParseExcel/FmtJapan2.pm
+ParseExcel/FmtUnicode.pm
+ParseExcel/SaveParser.pm
+ParseExcel/Utility.pm
+README
+README_Japan.htm
+sample/Excel/AuthorK.xls
+sample/Excel/AuthorK95.xls
+sample/Excel/FmtTest.xls
+sample/Excel/Rich.xls
+sample/Excel/Test1904.xls
+sample/Excel/Test1904_95.xls
+sample/Excel/Test95.xls
+sample/Excel/Test95J.xls
+sample/Excel/Test97.xls
+sample/Excel/Test97J.xls
+sample/Excel/oem.xls
+sample/README
+sample/chkFmt.pl
+sample/chkInfo.pl
+sample/dmpEx.pl
+sample/dmpExU.pl
+sample/dmpExH.pl
+sample/dmpExHJ.pl
+sample/dmpExJ.pl
+sample/dmpExR.pl
+sample/Ilya.pl
+sample/res_fmt
+sample/res_info
+sample/res_oem
+sample/res_rich
+sample/res_sample
+sample/res_samplej
+sample/sample.pl
+sample/sampleOEM.pl
+sample/sample_j.pl
+sample/smpFile.pl
+sample/xls2csv.pl
+sample/iftest.pl
+sample/iftestj.pl
+sample/dmpEx_2xml.pl
+test.pl
+META.yml                                 Module meta-data (added by MakeMaker)

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/META.yml
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/META.yml	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/META.yml	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,11 @@
+# http://module-build.sourceforge.net/META-spec.html
+#XXXXXXX This is a prototype!!!  It will change in the future!!! XXXXX#
+name:         Spreadsheet-ParseExcel
+version:      0.2603
+version_from: ParseExcel.pm
+installdirs:  site
+requires:
+    OLE::Storage_Lite:             0.08
+
+distribution_type: module
+generated_by: ExtUtils::MakeMaker version 6.17

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/Makefile.PL
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/Makefile.PL	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/Makefile.PL	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,8 @@
+use ExtUtils::MakeMaker;
+# See lib/ExtUtils/MakeMaker.pm for details of how to influence
+# the contents of the Makefile that is written.
+WriteMakefile(
+    'NAME'  => 'Spreadsheet::ParseExcel',
+    'VERSION_FROM' => 'ParseExcel.pm', # finds $VERSION
+    'PREREQ_PM' => { OLE::Storage_Lite => 0.08 },
+);

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/Dump.pm
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/Dump.pm	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/Dump.pm	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,186 @@
+# Spreadsheet::ParseExcel::Dump
+#  by Kawai, Takanori (Hippo2000) 2001.2.2
+# This Program is ALPHA version.
+#==============================================================================
+# Spreadsheet::ParseExcel::Dump
+#==============================================================================
+package Spreadsheet::ParseExcel::Dump;
+require Exporter;
+use strict;
+use vars qw($VERSION @ISA);
+ at ISA = qw(Exporter);
+$VERSION=0.01;
+sub subDUMP($$$$);
+sub OpName($);
+my %NameTbl = (
+#P291
+    0x0A    =>'EOF',                    0x0C    =>'CALCCOUNT',
+    0x0D    =>'CALCMODE',               0x0E    =>'PRECISION',
+    0x0F    =>'REFMODE',                0x10    =>'DELTA',
+    0x11    =>'ITERATION',              0x12    =>'PROTECT',
+    0x13    =>'PASSWORD',               0x14    =>'HEADER',
+
+    0x15    =>'FOOTER',                 0x16    =>'EXTERNCOUNT',
+    0x17    =>'EXTERNSHEET',            0x19    =>'WINDOWPROTECT',
+    0x1A    =>'VERTICALPAGEBREAKS',     0x1B    =>'HORIZONTALPAGEBREAKS',
+    0x1C    =>'NOTE',                   0x1D    =>'SELECTION',
+    0x22    =>'1904',                   0x26    =>'LEFTMARGIN',
+
+    0x27    =>'RIGHTMARGIN',            0x28    =>'TOPMARGIN',
+    0x29    =>'BOTTOMMARGIN',           0x2A    =>'PRINTHEADERS',
+    0x2B    =>'PRINTGRIDLINES',         0x2F    =>'FILEPASS',
+    0x3C    =>'COUNTINUE',              0x3D    =>'WINDOW1',
+    0x40    =>'BACKUP',                 0x41    =>'PANE',
+
+    0x42    =>'CODEPAGE',               0x4D    =>'PLS',
+    0x50    =>'DCON',                   0x51    =>'DCONREF',
+#P292
+    0x52    =>'DCONNAME',               0x55    =>'DEFCOLWIDTH',
+    0x59    =>'XCT',                    0x5A    =>'CRN',
+    0x5B    =>'FILESHARING',            0x5C    =>'WRITEACCES',
+    0x5D    =>'OBJ',                    0x5E    =>'UNCALCED',
+    0x5F    =>'SAVERECALC',             0x60    =>'TEMPLATE',
+
+    0x63    =>'OBJPROTECT',             0x7D    =>'COLINFO',
+    0x7E    =>'RK',                     0x7F    =>'IMDATA',
+    0x80    =>'GUTS',                   0x81    =>'WSBOOL',
+    0x82    =>'GRIDSET',                0x83    =>'HCENTER',
+    0x84    =>'VCENTER',                0x85    =>'BOUNDSHEET',
+
+    0x86    =>'WRITEPROT',              0x87    =>'ADDIN',
+    0x88    =>'EDG',                    0x89    =>'PUB',
+    0x8C    =>'COUNTRY',                0x8D    =>'HIDEOBJ',
+    0x90    =>'SORT',                   0x91    =>'SUB',
+    0x92    =>'PALETTE',                0x94    =>'LHRECORD',
+
+    0x95    =>'LHNGRAPH',               0x96    =>'SOUND',
+    0x98    =>'LPR',                    0x99    =>'STANDARDWIDTH',
+    0x9A    =>'FNGROUPNAME',            0x9B    =>'FILTERMODE',
+    0x9C    =>'FNGROUPCOUNT',
+#P293
+    0x9D    =>'AUTOFILTERINFO',         0x9E    =>'AUTOFILTER',
+    0xA0    =>'SCL',                    0xA1    =>'SETUP',
+    0xA9    =>'COORDLIST',              0xAB    =>'GCW',
+    0xAE    =>'SCENMAN',                0xAF    =>'SCENARIO',
+    0xB0    =>'SXVIEW',                 0xB1    =>'SXVD',
+
+    0xB2    =>'SXV',                    0xB4    =>'SXIVD',
+    0xB5    =>'SXLI',                   0xB6    =>'SXPI',
+    0xB8    =>'DOCROUTE',               0xB9    =>'RECIPNAME',
+    0xBC    =>'SHRFMLA',                0xBD    =>'MULRK',
+    0xBE    =>'MULBLANK',               0xBF    =>'TOOLBARHDR',
+    0xC0    =>'TOOLBAREND',             0xC1    =>'MMS',
+
+    0xC2    =>'ADDMENU',                0xC3    =>'DELMENU',
+    0xC5    =>'SXDI',                   0xC6    =>'SXDB',
+    0xCD    =>'SXSTRING',               0xD0    =>'SXTBL',
+    0xD1    =>'SXTBRGIITM',             0xD2    =>'SXTBPG',
+    0xD3    =>'OBPROJ',                 0xD5    =>'SXISDTM',
+
+    0xD6    =>'RSTRING',                0xD7    =>'DBCELL',
+    0xDA    =>'BOOKBOOL',               0xDC    =>'PARAMQRY',
+    0xDC    =>'SXEXT',                  0xDD    =>'SCENPROTECT',
+    0xDE    =>'OLESIZE',
+#P294
+    0xDF    =>'UDDESC',                 0xE0    =>'XF',
+    0xE1    =>'INTERFACEHDR',           0xE2    =>'INTERFACEEND',
+    0xE3    =>'SXVS',                   0xEA    =>'TABIDCONF',
+    0xEB    =>'MSODRAWINGGROUP',        0xEC    =>'MSODRAWING',
+    0xED    =>'MSODRAWINGSELECTION',    0xEF    =>'PHONETICINFO',
+    0xF0    =>'SXRULE',
+
+    0xF1    =>'SXEXT',                  0xF2    =>'SXFILT',
+    0xF6    =>'SXNAME',                 0xF7    =>'SXSELECT',
+    0xF8    =>'SXPAIR',                 0xF9    =>'SXFMLA',
+    0xFB    =>'SXFORMAT',               0xFC    =>'SST',
+    0xFD    =>'LABELSST',               0xFF    =>'EXTSST',
+
+    0x100   =>'SXVDEX',                 0x103   =>'SXFORMULA',
+    0x122   =>'SXDBEX',                 0x13D   =>'TABID',
+    0x160   =>'USESELFS',               0x161   =>'DSF',
+    0x162   =>'XL5MODIFY',              0x1A5   =>'FILESHARING2',
+    0x1A9   =>'USERBVIEW',              0x1AA   =>'USERVIEWBEGIN',
+
+    0x1AB   =>'USERSVIEWEND',           0x1AD   =>'QSI',
+    0x1AE   =>'SUPBOOK',                0x1AF   =>'PROT4REV',
+    0x1B0   =>'CONDFMT',                0x1B1   =>'CF',
+    0x1B2   =>'DVAL',
+#P295
+    0x1B5   =>'DCONBIN',                0x1B6   =>'TXO',
+    0x1B7   =>'REFRESHALL',             0x1B8   =>'HLINK',
+    0x1BA   =>'CODENAME',               0x1BB   =>'SXFDBTYPE',
+    0x1BC   =>'PROT4REVPASS',           0x1BE   =>'DV',
+    0x200   =>'DIMENSIONS',             0x201   =>'BLANK',
+
+    0x202   =>'Integer',    #Not Documented
+    0x203   =>'NUMBER',                 0x204   =>'LABEL',
+    0x205   =>'BOOLERR',                0x207   =>'STRING',
+    0x208   =>'ROW',                    0x20B   =>'INDEX',
+    0x218   =>'NAME',                   0x221   =>'ARRAY',
+    0x223   =>'EXTERNNAME',             0x225   =>'DEFAULTROWHEIGHT',
+
+    0x231   =>'FONT',                   0x236   =>'TABLE',
+    0x23E   =>'WINDOW2',                0x293   =>'STYLE',
+    0x406   =>'FORMULA',                0x41E   =>'FORMAT',
+
+    0x18    =>'NAME',
+
+    0x06    => 'FORMULA',
+
+    0x09    => 'BOF(BIFF2)',            0x209   =>'BOF(BIFF3)',
+    0x409   => 'BOF(BIFF4)',            0x809   =>'BOF(BIFF5-7)',
+
+    0x31   =>'FONT',                    0x27E   =>'RK',
+
+    #Chart/Graph
+    0x1001 => 'UNITS',                  0x1002 => 'CHART',
+    0x1003 => 'SERISES',                0x1006 => 'DATAFORMAT',
+    0x1007 => 'LINEFORMAT',             0x1009 => 'MAKERFORMAT',
+    0x100A => 'AREAFORMAT',             0x100B => 'PIEFORMAT',
+    0x100C => 'ATTACHEDLABEL',          0x100D => 'SERIESTEXT',
+    0x1014 => 'CHARTFORMAT',            0x1015 => 'LEGEND',
+    0x1016 => 'SERIESLIST',             0x1017 => 'BAR',
+    0x1018 => 'LINE',                   0x1019 => 'PIE',
+    0x101A => 'AREA',                   0x101B => 'SCATTER',
+    0x101C => 'CHARTLINE',              0x101D => 'AXIS',
+    0x101E => 'TICK',                   0x101F => 'VALUERANGE',
+    0x1020 => 'CATSERRANGE',            0x1021 => 'AXISLINEFORMAT',
+    0x1022 => 'CHARTFORMATLINK',        0x1024 => 'DEFAULTTEXT',
+    0x1025 => 'TEXT',                   0x1026 => 'FONTX',
+    0x1027 => 'OBJECTLINK',             0x1032 => 'FRAME',
+    0x1033 => 'BEGIN',                  0x1034 => 'END',
+    0x1035 => 'PLOTAREA',               0x103A => '3D',
+    0x103C => 'PICF',                   0x103D => 'DROPBAR',
+    0x103E => 'RADAR',                  0x103F => 'SURFACE',
+    0x1040 => 'RADARAREA',              0x1041 => 'AXISPARENT',
+    0x1043 => 'LEGENDXN',               0x1044 => 'SHTPROPS',
+    0x1045 => 'SERTOCRT',               0x1046 => 'AXESUSED',
+    0x1048 => 'SBASEREF',               0x104A => 'SERPARENT',
+    0x104B => 'SERAUXTREND',            0x104E => 'IFMT',
+    0x104F => 'POS',                    0x1050 => 'ALRUNS',
+    0x1051 => 'AI',                     0x105B => 'SERAUXERRBAR',
+    0x105D => 'SERFMT',                 0x1060 => 'FBI',
+    0x1061 => 'BOPPOP',                 0x1062 => 'AXCEXT',
+    0x1063 => 'DAT',                    0x1064 => 'PLOTGROWTH',
+    0x1065 => 'SINDEX',                 0x1066 => 'GELFRAME',
+    0x1067 => 'BPOPPOPCUSTOM',
+    );
+#------------------------------------------------------------------------------
+# subDUMP (for Spreadsheet::ParseExcel)
+#------------------------------------------------------------------------------
+sub subDUMP($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    printf "%04X:%-23s (Len:%3d) : %s\n", 
+            $bOp, OpName($bOp), $bLen, unpack("H40",$sWk);
+}
+#------------------------------------------------------------------------------
+# Spreadsheet::ParseExcel->OpName
+#------------------------------------------------------------------------------
+sub OpName($) {
+    my($bOp)=@_;
+    return (defined $NameTbl{$bOp})? $NameTbl{$bOp}: 'undef';
+}
+1;
+__END__
+

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtDefault.pm
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtDefault.pm	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtDefault.pm	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,152 @@
+# Spreadsheet::ParseExcel::FmtDefault
+#  by Kawai, Takanori (Hippo2000) 2001.2.2
+# This Program is ALPHA version.
+#==============================================================================
+package Spreadsheet::ParseExcel::FmtDefault;
+require Exporter;
+use strict;
+use Spreadsheet::ParseExcel::Utility qw(ExcelFmt);
+use vars qw($VERSION @ISA);
+ at ISA = qw(Exporter);
+$VERSION = '0.05'; # 
+
+my %hFmtDefault = (
+    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',
+    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',
+#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 => '@',
+);
+#------------------------------------------------------------------------------
+# new (for Spreadsheet::ParseExcel::FmtDefault)
+#------------------------------------------------------------------------------
+sub new($;%) {
+    my($sPkg, %hKey) = @_;
+    my $oThis={ 
+    };
+    bless $oThis;
+    return $oThis;
+}
+#------------------------------------------------------------------------------
+# TextFmt (for Spreadsheet::ParseExcel::FmtDefault)
+#------------------------------------------------------------------------------
+sub TextFmt($$;$) {
+    my($oThis, $sTxt, $sCode) =@_;
+    return $sTxt if((! defined($sCode)) || ($sCode eq '_native_'));
+    return pack('C*', unpack('n*', $sTxt));
+}
+#------------------------------------------------------------------------------
+# FmtStringDef (for Spreadsheet::ParseExcel::FmtDefault)
+#------------------------------------------------------------------------------
+sub FmtStringDef($$$;$) {
+    my($oThis, $iFmtIdx, $oBook, $rhFmt) =@_;
+    my $sFmtStr = $oBook->{FormatStr}->{$iFmtIdx};
+
+    if(!(defined($sFmtStr)) && defined($rhFmt)) {
+        $sFmtStr = $rhFmt->{$iFmtIdx};
+    }
+    $sFmtStr = $hFmtDefault{$iFmtIdx} unless($sFmtStr);
+    return $sFmtStr;
+}
+#------------------------------------------------------------------------------
+# FmtString (for Spreadsheet::ParseExcel::FmtDefault)
+#------------------------------------------------------------------------------
+sub FmtString($$$) {
+    my($oThis, $oCell, $oBook) =@_;
+
+    my $sFmtStr = $oThis->FmtStringDef(
+        $oBook->{Format}[$oCell->{FormatNo}]->{FmtIdx}, $oBook);
+
+    unless(defined($sFmtStr)) {
+        if ($oCell->{Type} eq 'Numeric') {
+            if(int($oCell->{Val}) != $oCell->{Val}) {
+                $sFmtStr = '0.00';
+            }
+            else {
+                $sFmtStr = '0';
+            }
+        }
+        elsif($oCell->{Type} eq 'Date') {
+            if(int($oCell->{Val}) <= 0) {
+                $sFmtStr = 'h:mm:ss';
+            }
+            else {
+                $sFmtStr = 'm-d-yy';
+            }
+        }
+        else {
+            $sFmtStr = '@';
+        }
+    }
+    return $sFmtStr;
+}
+#------------------------------------------------------------------------------
+# ValFmt (for Spreadsheet::ParseExcel::FmtDefault)
+#------------------------------------------------------------------------------
+sub ValFmt($$$) {
+    my($oThis, $oCell, $oBook) =@_;
+
+    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 = $oCell->{Val};
+    }
+    $Flg1904  = $oBook->{Flg1904};
+    my $sFmtStr = $oThis->FmtString($oCell, $oBook);
+    return ExcelFmt($sFmtStr, $Dt, $Flg1904, $oCell->{Type});
+}
+#------------------------------------------------------------------------------
+# ChkType (for Spreadsheet::ParseExcel::FmtDefault)
+#------------------------------------------------------------------------------
+sub ChkType($$$) {
+    my($oPkg, $iNumeric, $iFmtIdx) =@_;
+    if ($iNumeric) {
+        if((($iFmtIdx >= 0x0E) && ($iFmtIdx <= 0x16)) ||
+           (($iFmtIdx >= 0x2D) && ($iFmtIdx <= 0x2F))) {
+            return "Date";
+        }
+        else {
+            return "Numeric";
+        }
+    }
+    else {
+        return "Text";
+    }
+}
+1;

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtJapan.pm
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtJapan.pm	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtJapan.pm	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,155 @@
+# Spreadsheet::ParseExcel::FmtJapan
+#  by Kawai, Takanori (Hippo2000) 2001.2.2
+# This Program is ALPHA version.
+#==============================================================================
+package Spreadsheet::ParseExcel::FmtJapan;
+require Exporter;
+use strict;
+use Spreadsheet::ParseExcel::FmtDefault;
+use Jcode;
+use vars qw($VERSION @ISA);
+ at ISA = qw(Spreadsheet::ParseExcel::FmtDefault Exporter);
+
+$VERSION = '0.05'; # 
+my %hFmtJapan = (
+    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"Æü"',
+);
+my $_Code;
+#------------------------------------------------------------------------------
+# new (for Spreadsheet::ParseExcel::FmtJapan)
+#------------------------------------------------------------------------------
+sub new($%) {
+    my($sPkg, %hKey) = @_;
+    my $oThis={ 
+        Code => $hKey{Code},
+    };
+    if($oThis->{Code}) {
+        foreach my $sKey (keys %hFmtJapan) {
+            $hFmtJapan{$sKey} = 
+                Jcode::convert($hFmtJapan{$sKey}, $oThis->{Code}, 'euc');
+        }
+        $_Code = $oThis->{Code};
+    }
+    bless $oThis;
+    return $oThis;
+}
+#------------------------------------------------------------------------------
+# TextFmt (for Spreadsheet::ParseExcel::FmtJapan)
+#------------------------------------------------------------------------------
+sub TextFmt($$;$) {
+    my($oThis, $sTxt, $sCode) =@_;
+
+    if($oThis->{Code}) {
+        if(! defined($sCode)) {
+            $sTxt =~ s/(.)/\x00$1/sg;
+            $sCode = 'ucs2';
+        }
+        elsif($sCode eq '_native_') {
+            $sCode = 'sjis';
+        }
+        return Jcode::convert($sTxt, $oThis->{Code}, $sCode);
+    }
+    else {
+        return $sTxt;
+    }
+}
+#------------------------------------------------------------------------------
+# FmtStringDef (for Spreadsheet::ParseExcel::FmtJapan)
+#------------------------------------------------------------------------------
+sub FmtStringDef($$$) {
+    my($oThis, $iFmtIdx, $oBook) =@_;
+    return $oThis->SUPER::FmtStringDef($iFmtIdx, $oBook, \%hFmtJapan);
+}
+#------------------------------------------------------------------------------
+# ValFmt (for Spreadsheet::ParseExcel::FmtJapan)
+#------------------------------------------------------------------------------
+sub ValFmt($$$) {
+    my($oThis, $oCell, $oBook) =@_;
+    return $oThis->SUPER::ValFmt($oCell, $oBook);
+}
+#------------------------------------------------------------------------------
+# ChkType (for Spreadsheet::ParseExcel::FmtJapan)
+#------------------------------------------------------------------------------
+sub ChkType($$$) {
+    my($oPkg, $iNumeric, $iFmtIdx) =@_;
+# Is there something special for Japan?
+    return $oPkg->SUPER::ChkType($iNumeric, $iFmtIdx);
+}
+#------------------------------------------------------------------------------
+# CnvNengo (for Spreadsheet::ParseExcel::FmtJapan)
+#------------------------------------------------------------------------------
+sub CnvNengo($@) {
+    my($iKind, @aTime) = @_;
+    my $iWk = sprintf('%04d%02d%02d', $aTime[5], $aTime[4], $aTime[3]);
+    if($iWk    lt '19120730') {
+        my $iY = $aTime[5] - 1867;
+        return ($iKind == 1)? "M$iY" : 
+                Jcode::convert("ÌÀ¼£$iY", $_Code, 'euc');
+    }
+    elsif($iWk lt '19261225') {
+        my $iY = $aTime[5] - 1911;
+        return ($iKind == 1)? "T$iY" : 
+                Jcode::convert("ÂçÀµ$iY", $_Code, 'euc');
+    }
+    elsif($iWk lt '19890108' ) {
+        my $iY = $aTime[5] - 1925;
+        return ($iKind == 1)? "S$iY" : 
+                Jcode::convert("¾¼ÏÂ$iY", $_Code, 'euc');
+    }
+    else {
+        my $iY = $aTime[5] - 1988;
+        return ($iKind == 1)? "H$iY" :
+                Jcode::convert("Ê¿À®$iY", $_Code, 'euc');
+    }
+}
+
+1;

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtJapan2.pm
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtJapan2.pm	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtJapan2.pm	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,52 @@
+# Spreadsheet::ParseExcel::FmtJapan2
+#  by Kawai, Takanori (Hippo2000) 2001.2.2
+# This Program is ALPHA version.
+#==============================================================================
+package Spreadsheet::ParseExcel::FmtJapan2;
+require Exporter;
+use strict;
+use Jcode;
+use Unicode::Map;
+use Spreadsheet::ParseExcel::FmtJapan;
+use vars qw($VERSION @ISA);
+ at ISA = qw(Spreadsheet::ParseExcel::FmtJapan Exporter);
+$VERSION = '0.05'; # 
+
+#------------------------------------------------------------------------------
+# new (for Spreadsheet::ParseExcel::FmtJapan2)
+#------------------------------------------------------------------------------
+sub new($%) {
+    my($sPkg, %hKey) = @_;
+    my $oMap = Unicode::Map->new('CP932Excel');
+    die "NO MAP FILE CP932Excel!!" 
+        unless(-r Unicode::Map->mapping("CP932Excel"));
+
+    my $oThis={ 
+        Code => $hKey{Code},
+        _UniMap => $oMap,
+    };
+    bless $oThis;
+    $oThis->SUPER::new(%hKey);
+    return $oThis;
+}
+#------------------------------------------------------------------------------
+# TextFmt (for Spreadsheet::ParseExcel::FmtJapan2)
+#------------------------------------------------------------------------------
+sub TextFmt($$;$) {
+    my($oThis, $sTxt, $sCode) =@_;
+#    $sCode = 'sjis' if((! defined($sCode)) || ($sCode eq '_native_'));
+    if($oThis->{Code}) {
+        if(! defined($sCode)) {
+            $sTxt =~ s/(.)/\x00$1/sg;
+            $sTxt = $oThis->{_UniMap}->from_unicode($sTxt);
+        }
+        elsif($sCode eq 'ucs2') {
+            $sTxt = $oThis->{_UniMap}->from_unicode($sTxt);
+        }
+        return Jcode::convert($sTxt, $oThis->{Code}, 'sjis');
+    }
+    else {
+        return $sTxt;
+    }
+}
+1;

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtUnicode.pm
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtUnicode.pm	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/FmtUnicode.pm	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,52 @@
+# Spreadsheet::ParseExcel::FmtUnicode
+#  by Kawai, Takanori (Hippo2000) 2000.12.20
+#                                 2001.2.2
+# This Program is ALPHA version.
+#==============================================================================
+package Spreadsheet::ParseExcel::FmtUnicode;
+require Exporter;
+use strict;
+use Spreadsheet::ParseExcel::FmtDefault;
+use vars qw($VERSION @ISA);
+ at ISA = qw(Spreadsheet::ParseExcel::FmtDefault Exporter);
+$VERSION = '0.05'; # 
+use Unicode::Map;
+#------------------------------------------------------------------------------
+# new (for Spreadsheet::ParseExcel::FmtUnicode)
+#------------------------------------------------------------------------------
+sub new($%) {
+    my($sPkg, %hKey) = @_;
+    my $sMap = $hKey{Unicode_Map};
+    my $oMap;
+    $oMap = Unicode::Map->new($sMap) if $sMap;
+    my $oThis={ 
+        Unicode_Map => $sMap,
+        _UniMap => $oMap,
+    };
+    bless $oThis;
+    return $oThis;
+}
+#------------------------------------------------------------------------------
+# TextFmt (for Spreadsheet::ParseExcel::FmtUnicode)
+#------------------------------------------------------------------------------
+sub TextFmt($$;$) {
+    my($oThis, $sTxt, $sCode) =@_;
+    if($oThis->{_UniMap}) {
+        if(! defined($sCode)) {
+            my $sSv = $sTxt;
+            $sTxt =~ s/(.)/\x00$1/sg;
+            $sTxt = $oThis->{_UniMap}->from_unicode($sTxt);
+            $sTxt = $sSv unless($sTxt);
+        }
+        elsif($sCode eq 'ucs2') {
+            $sTxt = $oThis->{_UniMap}->from_unicode($sTxt);
+        }
+#        $sTxt = $oThis->{_UniMap}->from_unicode($sTxt)
+#                     if(defined($sCode) && $sCode eq 'ucs2');
+        return $sTxt;
+    }
+    else {
+        return $sTxt;
+    }
+}
+1;

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/SaveParser.pm
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/SaveParser.pm	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/SaveParser.pm	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,761 @@
+# Spreadsheet::ParseExcel::SaveParser
+#  by Kawai, Takanori (Hippo2000) 2001.5.1
+# This Program is ALPHA version.
+#//////////////////////////////////////////////////////////////////////////////
+# Spreadsheet::ParseExcel:.SaveParser Objects
+#//////////////////////////////////////////////////////////////////////////////
+#==============================================================================
+# Spreadsheet::ParseExcel::SaveParser::Workbook
+#==============================================================================
+package Spreadsheet::ParseExcel::SaveParser::Workbook;
+require Exporter;
+use strict;
+use vars qw($VERSION @ISA);
+ at ISA = qw(Spreadsheet::ParseExcel::Workbook Exporter);
+$VERSION = '0.06'; # 
+sub new($$) {
+    my($sPkg, $oBook) = @_;
+    return undef unless(defined $oBook);
+    my %oThis = %$oBook;
+    bless \%oThis, $sPkg;
+    
+    # re-bless worksheets (and set their _Book properties !!!)
+    my $sWkP = ref($sPkg) || "$sPkg";
+    $sWkP =~ s/Workbook$/Worksheet/;
+    map { bless($_, $sWkP); } @{$oThis{Worksheet}};
+    map { $_->{_Book} = \%oThis; } @{$oThis{Worksheet}};
+    return \%oThis;
+}
+#------------------------------------------------------------------------------
+# Parse (for Spreadsheet::ParseExcel::SaveParser::Workbook)
+#------------------------------------------------------------------------------
+sub Parse($$;$) {
+    my($sClass, $sFile, $oWkFmt)=@_;
+    my $oBook = Spreadsheet::ParseExcel::Workbook->Parse($sFile, $oWkFmt);
+    bless $oBook, $sClass;
+
+    # re-bless worksheets (and set their _Book properties !!!)
+    my $sWkP = ref($sClass) || "$sClass";
+    $sWkP =~ s/Workbook$/Worksheet/;
+    map { bless($_, $sWkP); } @{$oBook->{Worksheet}};
+    map { $_->{_Book} = $oBook; } @{$oBook->{Worksheet}};
+    return $oBook;
+}
+#------------------------------------------------------------------------------
+# SaveAs (for Spreadsheet::ParseExcel::SaveParser::Workbook)
+#------------------------------------------------------------------------------
+sub SaveAs($$){
+    my ($oBook, $sName)=@_;
+    # Create a new Excel workbook
+    my $oWrEx = Spreadsheet::WriteExcel->new($sName);
+    my %hFmt;
+
+    my $iNo = 0;
+    my @aAlH = ('left', 'left', 'center', 'right', 'fill', 'justify', 'merge', 'equal_space');
+    my @aAlV = ('top' , 'vcenter', 'bottom', 'vjustify', 'vequal_space');
+
+    foreach my $pFmt (@{$oBook->{Format}}) {
+        my $oFmt = $oWrEx->addformat();    # Add Formats
+        unless($pFmt->{Style}) {
+            $hFmt{$iNo} = $oFmt;
+            my $rFont = $pFmt->{Font};
+
+            $oFmt->set_font($rFont->{Name});
+            $oFmt->set_size($rFont->{Height});
+            $oFmt->set_color($rFont->{Color});
+            $oFmt->set_bold($rFont->{Bold});
+            $oFmt->set_italic($rFont->{Italic});
+            $oFmt->set_underline($rFont->{Underline});
+            $oFmt->set_font_strikeout($rFont->{Strikeout});
+            $oFmt->set_font_script($rFont->{Super});
+
+            $oFmt->set_hidden($rFont->{Hidden});        #Add
+
+            $oFmt->set_locked($pFmt->{Lock});
+
+            $oFmt->set_align($aAlH[$pFmt->{AlignH}]);
+            $oFmt->set_align($aAlV[$pFmt->{AlignV}]);
+            if($pFmt->{Rotate}==0) {
+                $oFmt->set_rotation(0);
+            }
+            elsif($pFmt->{Rotate}> 0) {  # Mainly ==90
+                $oFmt->set_rotation(3);
+            }
+            elsif($pFmt->{Rotate} < 0) {  # Mainly == -90
+                $oFmt->set_rotation(2);
+            }
+            $oFmt->set_num_format($oBook->{FmtClass}->FmtStringDef($pFmt->{FmtIdx}, $oBook));
+
+            $oFmt->set_text_wrap($pFmt->{Wrap});
+
+            $oFmt->set_pattern($pFmt->{Fill}->[0]);
+            $oFmt->set_fg_color($pFmt->{Fill}->[1]) 
+                        if(($pFmt->{Fill}->[1] >= 8) && ($pFmt->{Fill}->[1] <= 63));
+            $oFmt->set_bg_color($pFmt->{Fill}->[2])
+                        if(($pFmt->{Fill}->[2] >= 8) && ($pFmt->{Fill}->[2] <= 63));
+
+            $oFmt->set_left  (($pFmt->{BdrStyle}->[0]>7)? 3: $pFmt->{BdrStyle}->[0]);
+            $oFmt->set_right (($pFmt->{BdrStyle}->[1]>7)? 3: $pFmt->{BdrStyle}->[1]);
+            $oFmt->set_top   (($pFmt->{BdrStyle}->[2]>7)? 3: $pFmt->{BdrStyle}->[2]);
+            $oFmt->set_bottom(($pFmt->{BdrStyle}->[3]>7)? 3: $pFmt->{BdrStyle}->[3]);
+
+            $oFmt->set_left_color  ($pFmt->{BdrColor}->[0])
+                        if(($pFmt->{BdrColor}->[0] >= 8) && ($pFmt->{BdrColor}->[0] <= 63));
+            $oFmt->set_right_color ($pFmt->{BdrColor}->[1])
+                        if(($pFmt->{BdrColor}->[1] >= 8) && ($pFmt->{BdrColor}->[1] <= 63));
+            $oFmt->set_top_color   ($pFmt->{BdrColor}->[2])
+                        if(($pFmt->{BdrColor}->[2] >= 8) && ($pFmt->{BdrColor}->[2] <= 63));
+            $oFmt->set_bottom_color($pFmt->{BdrColor}->[3])
+                        if(($pFmt->{BdrColor}->[3] >= 8) && ($pFmt->{BdrColor}->[3] <= 63));
+        }
+        $iNo++;
+    }
+    for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
+        my $oWkS = $oBook->{Worksheet}[$iSheet];
+        my $oWrS = $oWrEx->addworksheet($oWkS->{Name});
+        #Landscape
+        if(!$oWkS->{Landscape}) { # Landscape (0:Horizontal, 1:Vertical)
+            $oWrS->set_landscape();
+        }
+        else {
+            $oWrS->set_portrait();
+        }
+        #Protect
+        if(defined $oWkS->{Protect}) { # Protect ('':NoPassword, Password:Password)
+	    if ($oWkS->{Protect} ne '') {
+		$oWrS->protect($oWkS->{Protect});
+	    }
+	    else {
+		$oWrS->protect();
+	    }
+        }
+        if(($oWkS->{FitWidth}==1) and ($oWkS->{FitHeight}==1)) {
+            # Pages on fit with width and Heigt
+            $oWrS->fit_to_pages($oWkS->{FitWidth}, $oWkS->{FitHeight});
+            #Print Scale
+            $oWrS->set_print_scale($oWkS->{Scale});
+        }
+        else {
+            #Print Scale
+            $oWrS->set_print_scale($oWkS->{Scale});
+            # Pages on fit with width and Heigt
+            $oWrS->fit_to_pages($oWkS->{FitWidth}, $oWkS->{FitHeight});
+        }
+        # Paper Size
+        $oWrS->set_paper($oWkS->{PaperSize});
+        # Margin
+        $oWrS->set_margin_left($oWkS->{LeftMergin}     / 2.55);
+        $oWrS->set_margin_right($oWkS->{RightMergin}   / 2.55);
+        $oWrS->set_margin_top($oWkS->{TopMergin}       / 2.55);
+        $oWrS->set_margin_bottom($oWkS->{BottomMergin} / 2.55);
+        # HCenter
+        $oWrS->center_horizontally() if($oWkS->{HCenter});
+        # VCenter
+        $oWrS->center_vertically() if($oWkS->{VCenter});
+        # Header, Footer
+        $oWrS->set_header($oWkS->{Header}, $oWkS->{HeaderMergin}/2.55);
+        $oWrS->set_footer($oWkS->{Footer}, $oWkS->{FooterMergin}/2.55);
+        # Print Area
+        if(ref($oBook->{PrintArea}[$iSheet]) eq 'ARRAY') {
+            my $raP;
+            for $raP (@{$oBook->{PrintArea}[$iSheet]}) {
+                $oWrS->print_area(@$raP);
+            }
+        }
+            
+        # Print Title
+        my $raW;
+        foreach $raW (@{$oBook->{PrintTitle}[$iSheet]->{Row}}) {
+            $oWrS->repeat_rows(@$raW);
+        }
+        foreach $raW (@{$oBook->{PrintTitle}[$iSheet]->{Column}}) {
+            $oWrS->repeat_columns(@$raW);
+        }
+        # Print Gridlines
+        if($oWkS->{PrintGrid}==1) {
+            $oWrS->hide_gridlines(0);
+        }
+        else {
+            $oWrS->hide_gridlines(1);
+        }
+        # Print Headings
+        if($oWkS->{PrintHeaders}) {
+            $oWrS->print_row_col_headers();
+        }
+        # Horizontal Page Breaks
+        $oWrS->set_h_pagebreaks(@{$oWkS->{HPageBreak}});
+        # Veritical Page Breaks
+        $oWrS->set_v_pagebreaks(@{$oWkS->{VPageBreak}});
+=pod
+
+            PageStart    => $oWkS->{PageStart},            # Page number for start
+            UsePage      => $oWkS->{UsePage},              # Use own start page number
+            NoColor      => $oWkS->{NoColor},               # Print in blcak-white
+            Draft        => $oWkS->{Draft},                 # Print in draft mode
+            Notes        => $oWkS->{Notes},                 # Print notes
+            LeftToRight  => $oWkS->{LeftToRight},           # Left to Right
+=cut
+        for(my $iC = $oWkS->{MinCol} ;
+                            defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {            
+            if(defined $oWkS->{ColWidth}[$iC]) {
+                if($oWkS->{ColWidth}[$iC]>0) {
+                    $oWrS->set_column($iC, $iC, $oWkS->{ColWidth}[$iC]);#, undef, 1) ;
+                }
+                else {
+                    $oWrS->set_column($iC, $iC, 0, undef, 1) ;
+                }
+            }
+        }
+        for(my $iR = $oWkS->{MinRow} ; 
+                defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
+            $oWrS->set_row($iR, $oWkS->{RowHeight}[$iR]);
+            for(my $iC = $oWkS->{MinCol} ;
+                            defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
+
+                my $oWkC = $oWkS->{Cells}[$iR][$iC];
+                if($oWkC) {
+                    if($oWkC->{Merged}) {
+                        my $oFmtN = $oWrEx->addformat();
+                        $oFmtN->copy($hFmt{$oWkC->{FormatNo}});
+                        $oFmtN->set_merge(1);
+                        $oWrS->write($iR , $iC, $oBook->{FmtClass}->TextFmt($oWkC->{Val}, $oWkC->{Code}), 
+                            $oFmtN);
+                    }
+                    else {
+                        $oWrS->write($iR , $iC, $oBook->{FmtClass}->TextFmt($oWkC->{Val}, $oWkC->{Code}), 
+                            $hFmt{$oWkC->{FormatNo}});
+                    }
+                }
+            }
+        }
+    }
+    return $oWrEx
+}
+#------------------------------------------------------------------------------
+# AddWorksheet (for Spreadsheet::ParseExcel::SaveParser::Workbook)
+#------------------------------------------------------------------------------
+sub AddWorksheet($$%) {
+    my($oBook, $sName, %hAttr) = @_;
+    $oBook->AddFormat if($#{$oBook->{Format}}<0);
+    $hAttr{Name} ||= $sName;
+    $hAttr{LeftMergin} ||= 0;
+    $hAttr{RightMergin} ||= 0;
+    $hAttr{TopMergin} ||= 0;
+    $hAttr{BottomMergin} ||= 0;
+    $hAttr{HeaderMergin} ||= 0;
+    $hAttr{FooterMergin} ||= 0;
+    $hAttr{FitWidth} ||= 0;
+    $hAttr{FitHeight} ||= 0;
+    $hAttr{PrintGrid} ||= 0;
+    my $oWkS = Spreadsheet::ParseExcel::SaveParser::Worksheet->new(%hAttr);
+    $oWkS->{_Book} = $oBook;
+    $oWkS->{_SheetNo} = $oBook->{SheetCount};
+    $oBook->{Worksheet}[$oBook->{SheetCount}] = $oWkS;
+    $oBook->{SheetCount}++;
+    return $oWkS; #$oBook->{SheetCount} - 1;
+}
+#------------------------------------------------------------------------------
+# AddFont (for Spreadsheet::ParseExcel::SaveParser::Workbook)
+#------------------------------------------------------------------------------
+sub AddFont($%){
+    my ($oBook, %hAttr) = @_;
+    $hAttr{Name}     ||= 'Arial';
+    $hAttr{Height}   ||= 10;
+    $hAttr{Bold}     ||= 0;
+    $hAttr{Italic}   ||= 0;
+    $hAttr{Underline}||= 0;
+    $hAttr{Strikeout}||= 0;
+    $hAttr{Super}    ||= 0;
+    push @{$oBook->{Font}}, 
+        Spreadsheet::ParseExcel::Font->new(%hAttr);
+    return $#{$oBook->{Font}};
+}
+#------------------------------------------------------------------------------
+# AddFormat (for Spreadsheet::ParseExcel::SaveParser::Workbook)
+#------------------------------------------------------------------------------
+sub AddFormat($%){
+    my ($oBook, %hAttr) = @_;
+    $hAttr{Fill}     ||= [0, 0, 0];
+    $hAttr{BdrStyle} ||= [0, 0, 0, 0];
+    $hAttr{BdrColor} ||= [0, 0, 0, 0];
+    $hAttr{AlignH} ||= 0;
+    $hAttr{AlignV} ||= 0;
+    $hAttr{Rotate} ||= 0;
+    $hAttr{Landscape} ||= 0;
+    $hAttr{FmtIdx} ||= 0;
+    if(!defined($hAttr{Font})) {
+        my $oFont;
+        if(defined $hAttr{FontNo}) {
+            $oFont = $oBook->{Font}[$hAttr{FontNo}];
+        }
+        elsif(!defined $oFont) {
+            if($#{$oBook->{Font}}>=0) {
+                $oFont = $oBook->{Font}[0];
+            }
+            else {
+                my $iNo = $oBook->AddFont;
+                $oFont = $oBook->{Font}[$iNo];
+            }
+        }
+        $hAttr{Font} = $oFont;
+    }
+    push @{$oBook->{Format}}, 
+        Spreadsheet::ParseExcel::Format->new(%hAttr);
+    return $#{$oBook->{Format}};
+}
+#------------------------------------------------------------------------------
+# AddCell (for Spreadsheet::ParseExcel::SaveParser::Workbook)
+#------------------------------------------------------------------------------
+sub AddCell($$$$$$;$) {
+    my($oBook, $iSheet, $iR, $iC, $sVal, $oCell, $sCode)=@_;
+    my %rhKey;
+    $oCell ||= 0;
+    my $iFmt = (UNIVERSAL::isa($oCell, 'Spreadsheet::ParseExcel::Cell'))?
+                $oCell->{FormatNo} : (ref($oCell))? 0: $oCell+0;
+    $rhKey{FormatNo} = $iFmt;
+    $rhKey{Format}   = $oBook->{Format}[$iFmt];
+    $rhKey{Val}      = $sVal;
+    $rhKey{Code}     = $sCode || '_native_';
+    $oBook->{_CurSheet} = $iSheet;
+    my $oNewCell = Spreadsheet::ParseExcel::_NewCell($oBook, $iR, $iC, %rhKey);
+    Spreadsheet::ParseExcel::_SetDimension($oBook, $iR, $iC, $iC);
+    return $oNewCell;
+}
+1;
+#==============================================================================
+# Spreadsheet::ParseExcel::SaveParser::Worksheet
+#==============================================================================
+package Spreadsheet::ParseExcel::SaveParser::Worksheet;
+require Exporter;
+use strict;
+use vars qw($VERSION @ISA);
+ at ISA = qw(Spreadsheet::ParseExcel::Worksheet Exporter);
+sub new($%) {
+  my ($sClass, %rhIni) = @_;
+  $sClass->SUPER::new(%rhIni);  # returns object
+}
+#------------------------------------------------------------------------------
+# AddCell (for Spreadsheet::ParseExcel::SaveParser::Worksheet)
+#------------------------------------------------------------------------------
+sub AddCell($$$$$;$) {
+    my($oSelf, $iR, $iC, $sVal, $oCell, $sCode)=@_;
+    $oSelf->{_Book}->AddCell($oSelf->{_SheetNo}, $iR, $iC, $sVal, $oCell, $sCode);
+}
+#------------------------------------------------------------------------------
+# Protect (for Spreadsheet::ParseExcel::SaveParser::Worksheet)
+#  - Password = undef   ->  No protect
+#  - Password = ''      ->  Protected. No password
+#  - Password = $pwd    ->  Protected. Password = $pwd
+#------------------------------------------------------------------------------
+sub Protect {
+    my($oSelf, $sPassword)=@_;
+    $oSelf->{Protect} = $sPassword;
+}
+
+#==============================================================================
+# Spreadsheet::ParseExcel::SaveParser
+#==============================================================================
+package Spreadsheet::ParseExcel::SaveParser;
+require Exporter;
+use strict;
+use Spreadsheet::WriteExcel;
+use Spreadsheet::ParseExcel;
+use vars qw($VERSION @ISA);
+ at ISA = qw(Spreadsheet::ParseExcel Exporter);
+$VERSION = '0.01'; # 
+use constant MagicCol => 1.14;
+#------------------------------------------------------------------------------
+# new (for Spreadsheet::ParseExcel::SaveParser)
+#------------------------------------------------------------------------------
+sub new($%) {
+    my($sPkg, %hKey) = @_;
+    $sPkg->SUPER::new(%hKey);
+}
+#------------------------------------------------------------------------------
+# Create
+#------------------------------------------------------------------------------
+sub Create($;$) {
+    my($oThis, $oWkFmt)=@_;
+#0. New $oBook
+    my $oBook = Spreadsheet::ParseExcel::Workbook->new;
+    $oBook->{SheetCount} = 0;
+#2. Ready for format
+    if ($oWkFmt) {
+        $oBook->{FmtClass} = $oWkFmt;
+    }
+    else {
+        $oBook->{FmtClass} = new Spreadsheet::ParseExcel::FmtDefault;
+    }
+    return Spreadsheet::ParseExcel::SaveParser::Workbook->new($oBook);
+}
+#------------------------------------------------------------------------------
+# Parse (for Spreadsheet::ParseExcel::SaveParser)
+#------------------------------------------------------------------------------
+sub Parse($$;$) {
+    my($oThis, $sFile, $oWkFmt)=@_;
+    my $oBook = $oThis->SUPER::Parse($sFile, $oWkFmt);
+    return undef unless(defined $oBook);
+    return Spreadsheet::ParseExcel::SaveParser::Workbook->new($oBook);
+}
+#------------------------------------------------------------------------------
+# SaveAs (for Spreadsheet::ParseExcel::SaveParser)
+#------------------------------------------------------------------------------
+sub SaveAs($$$){
+    my ($oThis, $oBook, $sName)=@_;
+    $oBook->SaveAs($sName);
+}
+1;
+
+__END__
+
+=head1 NAME
+
+Spreadsheet::ParseExcel::SaveParser - Expand of Spreadsheet::ParseExcel with Spreadsheet::WriteExcel
+
+=head1 SYNOPSIS
+
+    #1. Write an Excel file with previous data
+    use strict;
+    use Spreadsheet::ParseExcel::SaveParser;
+    my $oExcel = new Spreadsheet::ParseExcel::SaveParser;
+    my $oBook = $oExcel->Parse('temp.xls');
+    #1.1.Update and Insert Cells
+    my $iFmt = $oBook->{Worksheet}[0]->{Cells}[0][0]->{FormatNo};
+    $oBook->AddCell(0, 0, 0, 'No(UPD)', 
+        $oBook->{Worksheet}[0]->{Cells}[0][0]->{FormatNo});
+    $oBook->AddCell(0, 1, 0, '304', $oBook->{Worksheet}[0]->{Cells}[0][0]);
+    $oBook->AddCell(0, 1, 1, 'Kawai,Takanori', $iFmt);
+    #1.2.add new worksheet
+    my $iWkN = $oBook->AddWorksheet('Test');
+    #1.3 Save
+    $oExcel->SaveAs($oBook, 'temp.xls');  # as the same name
+    $oExcel->SaveAs($oBook, 'temp1.xls'); # another name
+
+    #2. Create new Excel file (most simple)
+    use strict;
+    use Spreadsheet::ParseExcel::SaveParser;
+    my $oEx = new Spreadsheet::ParseExcel::SaveParser;
+    my $oBook = $oEx->Create();
+    $oBook->AddFormat;
+    $oBook->AddWorksheet('NewWS');
+    $oBook->AddCell(0, 0, 1, 'New Cell');
+    $oEx->SaveAs($oBook, 'new.xls');
+
+    #3. Create new Excel file(more complex)
+    #!/usr/local/bin/perl
+    use strict;
+    use Spreadsheet::ParseExcel::SaveParser;
+    my $oEx = new Spreadsheet::ParseExcel::SaveParser;
+    my $oBook = $oEx->Create();
+    my $iF1 = $oBook->AddFont(
+            Name      => 'Arial',
+            Height    => 11,
+            Bold      => 1, #Bold
+            Italic    => 1, #Italic
+            Underline => 0,
+            Strikeout => 0,
+            Super     => 0,
+        );
+    my $iFmt =
+    $oBook->AddFormat(
+        Font => $oBook->{Font}[$iF1],
+        Fill => [1, 10, 0],         # Filled with Red
+                                    # cf. ParseExcel (@aColor)
+        BdrStyle => [0, 1, 1, 0],   #Border Right, Top
+        BdrColor => [0, 11, 0, 0],  # Right->Green
+    );
+    $oBook->AddWorksheet('NewWS');
+    $oBook->AddCell(0, 0, 1, 'Cell', $iFmt);
+    $oEx->SaveAs($oBook, 'new.xls');
+
+I<new interface...>
+
+    use strict;
+    use Spreadsheet::ParseExcel::SaveParser;
+    $oBook = 
+        Spreadsheet::ParseExcel::SaveParser::Workbook->Parse('Excel/Test97.xls');
+    my $oWs = $oBook->AddWorksheet('TEST1');
+    $oWs->AddCell(10, 1, 'New Cell');
+    $oBook->SaveAs('iftest.xls');
+
+=head1 DESCRIPTION
+
+Spreadsheet::ParseExcel::SaveParser : Expand of Spreadsheet::ParseExcel with Spreadsheet::WriteExcel
+
+=head2 Functions
+
+=over 4
+
+=item new
+
+I<$oExcel> = new Spreadsheet::ParseExcel::SaveParser();
+
+Constructor.
+
+=item Parse
+
+I<$oWorkbook> = $oParse->Parse(I<$sFileName> [, I<$oFmt>]);
+
+return L<"Workbook"> object.
+if error occurs, returns undef.
+
+=over 4
+
+=item I<$sFileName>
+
+name of the file to parse (Same as Spreadsheet::ParseExcel)
+
+From 0.12 (with OLE::Storage_Lite v.0.06), 
+scalar reference of file contents (ex. \$sBuff) or 
+IO::Handle object (inclucdng IO::File etc.) are also available.
+
+=item I<$oFmt>
+
+Formatter Class to format the value of cells.
+
+=back
+
+=item Create
+
+I<$oWorkbook> = $oParse->Create([I<$oFmt>]);
+
+return new L<"Workbook"> object.
+if error occurs, returns undef.
+
+=over 4
+
+=item I<$oFmt>
+
+Formatter Class to format the value of cells.
+
+=back
+
+=item SaveAs
+
+I<$oWorkbook> = $oParse->SaveAs( $oBook, $sName);
+
+save $oBook image as an Excel file named $sName.
+
+=over 4
+
+=item I<$oBook>
+
+An Excel Workbook object to save.
+
+=back
+
+=item I<$sName>
+
+Name of new Excel file.
+
+=back
+
+=head2 Workbook
+
+I<Spreadsheet::ParseExcel::SaveParser::Workbook>
+
+Workbook is a subclass of Spreadsheet::ParseExcel::Workbook.
+And has these methods :
+
+=over 4
+
+=item AddWorksheet
+
+I<$oWorksheet> = $oBook->AddWorksheet($sName, %hProperty);
+
+Create new Worksheet(Spreadsheet::ParseExcel::Worksheet).
+
+=over 4
+
+=item I<$sName>
+
+Name of new Worksheet
+
+=item I<$hProperty>
+
+Property of new Worksheet.
+
+=back
+
+=item AddFont
+
+I<$oWorksheet> = $oBook->AddFont(%hProperty);
+
+Create new Font(Spreadsheet::ParseExcel::Font).
+
+=over 4
+
+=item I<$hProperty>
+
+Property of new Worksheet.
+
+=back
+
+=item AddFormat
+
+I<$oWorksheet> = $oBook->AddFormat(%hProperty);
+
+Create new Format(Spreadsheet::ParseExcel::Format).
+
+=over 4
+
+=item I<$hProperty>
+
+Property of new Format.
+
+=back
+
+=item AddCell
+
+I<$oWorksheet> = $oBook->AddCell($iWorksheet, $iRow, $iCol, $sVal, $iFormat [, $sCode]);
+
+Create new Cell(Spreadsheet::ParseExcel::Cell).
+
+=over 4
+
+=item I<$iWorksheet>
+
+Number of Worksheet
+
+=back
+
+=over 4
+
+=item I<$iRow>
+
+Number of row
+
+=back
+
+=over 4
+
+=item I<$sVal>
+
+Value of the cell.
+
+=back
+
+=over 4
+
+=item I<$iFormat>
+
+Number of format for use. To specify just same as another cell,
+you can set it like below:
+
+ex.
+
+  $oCell=$oWorksheet->{Cells}[0][0]; #Just a sample
+  $oBook->AddCell(0, 1, 0, 'New One', $oCell->{FormatNo});
+    #or 
+  $oBook->AddCell(0, 1, 0, 'New One', $oCell);
+
+=back
+
+=over 4
+
+=item I<$sCode>
+
+  Character code
+
+=back
+
+=back
+
+=head2 Worksheet
+
+I<Spreadsheet::ParseExcel::SaveParser::Worksheet>
+
+Worksheet is a subclass of Spreadsheet::ParseExcel::Worksheet.
+And has these methods :
+
+=over 4
+
+=item AddCell
+
+I<$oWorksheet> = $oWkSheet->AddCell($iRow, $iCol, $sVal, $iFormat [, $sCode]);
+
+Create new Cell(Spreadsheet::ParseExcel::Cell).
+
+=over 4
+
+=item I<$iRow>
+
+Number of row
+
+=back
+
+=over 4
+
+=item I<$sVal>
+
+Value of the cell.
+
+=back
+
+=over 4
+
+=item I<$iFormat>
+
+Number of format for use. To specify just same as another cell,
+you can set it like below:
+
+ex.
+
+  $oCell=$oWorksheet->{Cells}[0][0]; #Just a sample
+  $oWorksheet->AddCell(1, 0, 'New One', $oCell->{FormatNo});
+    #or 
+  $oWorksheet->AddCell(1, 0, 'New One', $oCell);
+
+=back
+
+=over 4
+
+=item I<$sCode>
+
+  Character code
+
+=back
+
+=back
+
+=head1 MORE INFORMATION
+
+Please visit my Wiki page.
+ I'll add sample at :
+    http://www.hippo2000.info/cgi-bin/KbWikiE/KbWiki.pl
+
+=head1 Known Problem
+
+-Only last print area will remain. (Others will be removed)
+
+=head1 AUTHOR
+
+Kawai Takanori (Hippo2000) kwitknr at cpan.org
+
+    http://member.nifty.ne.jp/hippo2000/            (Japanese)
+    http://member.nifty.ne.jp/hippo2000/index_e.htm (English)
+
+=head1 SEE ALSO
+
+XLHTML, OLE::Storage, Spreadsheet::WriteExcel, OLE::Storage_Lite
+
+This module is based on herbert within OLE::Storage and XLHTML.
+
+=head1 COPYRIGHT
+
+Copyright (c) 2000-2002 Kawai Takanori and Nippon-RAD Co. OP Division
+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.
+
+=head1 ACKNOWLEDGEMENTS
+
+First of all, I would like to acknowledge valuable program and modules :
+XHTML, OLE::Storage and Spreadsheet::WriteExcel.
+
+In no particular order: Yamaji Haruna, Simamoto Takesi, Noguchi Harumi, 
+Ikezawa Kazuhiro, Suwazono Shugo, Hirofumi Morisada, Michael Edwards, Kim Namusk 
+and many many people + Kawai Mikako.
+
+=cut

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/Utility.pm
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/Utility.pm	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel/Utility.pm	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,1147 @@
+# Spreadsheet::ParseExcel::Utility
+#  by Kawai, Takanori (Hippo2000) 2001.2.2
+# This Program is ALPHA version.
+#==============================================================================
+# Spreadsheet::ParseExcel::Utility;
+#==============================================================================
+package Spreadsheet::ParseExcel::Utility;
+require Exporter;
+use strict;
+use vars qw($VERSION @ISA @EXPORT_OK);
+ at ISA = qw(Exporter);
+ at EXPORT_OK = qw(ExcelFmt LocaltimeExcel ExcelLocaltime 
+                col2int int2col sheetRef xls2csv);
+$VERSION=0.06;
+#my $sNUMEXP = '^[+-]?\d+(\.\d+)?$';
+#my $sNUMEXP = '(^[+-]?\d+(\.\d+)?$)|(^[+-]?\d\.*(\d+)[eE][+-](\d+))$';
+my $sNUMEXP = '(^[+-]?\d+(\.\d+)?$)|(^[+-]?\d+\.?(\d*)[eE][+-](\d+))$';
+
+#ProtoTypes
+sub ExcelFmt($$;$$);
+sub LocaltimeExcel($$$$$$;$$);
+sub ExcelLocaltime($;$);
+sub AddComma($);
+sub MakeBun($$;$);
+sub MakeE($$);
+sub LeapYear($);
+
+#------------------------------------------------------------------------------
+# ExcelFmt (for Spreadsheet::ParseExcel::Utility)
+#------------------------------------------------------------------------------
+sub ExcelFmt($$;$$) {
+    my($sFmt, $iData, $i1904, $sType) =@_;
+    my $sCond;
+    my $sWkF ='';
+    my $sRes='';
+#1. Get Condition
+    if($sFmt=~/^\[([<>=][^\]]+)\](.*)$/) {
+        $sCond = $1;
+        $sFmt = $2;
+    }
+    $sFmt =~ s/_/ /g;
+
+    my @sFmtWk;
+    my $sFmtObj;
+    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 '"');
+            $iQ = 0;
+            next;
+        }
+
+        if($sWk eq ';') {
+            $iFmtPos++;
+            next;
+        }
+        elsif($sWk eq '"') {
+            $iDblQ = 1;
+        }
+        elsif($sWk eq '!') {
+            $iQ = 1;
+        }
+        elsif($sWk eq '\\') {
+            $iQ = 1;
+#            next;
+        }
+        elsif($sWk eq '(') { #Skip?
+            next;
+        }
+        elsif($sWk eq ')') { #Skip?
+            next;
+        }
+        $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;
+            # $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];
+                }
+            }
+        }
+    }
+    else {
+        $sFmtObj = $sFmtWk[0];
+    }
+
+    my $sColor;
+    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;
+    my $sFmtWk;
+    my @aRep = ();
+    my $sFmtRes='';
+
+    my $iFflg = -1;
+    my $iRpos = -1;
+    my $iCmmCnt = 0;
+    my $iBunFlg = 0;
+    my $iFugouFlg = 0;
+    my $iPer = 0;
+    my $iAm=0;
+    my $iSt;
+
+    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 eq '"') {
+            $iDblQ = $iDblQ? 0: 1;
+            $i++;
+            next;
+        }
+        elsif($sWk eq '!') {
+            $iQ = 1;
+            $i++;
+            next;
+        }
+        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))) {
+            $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];
+                $iFugouFlg = 1;
+                $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#]+)/){
+                    push @aRep, [substr($sFmtObj, $i, length($&)), $i, length($&)];
+                    $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];
+                }
+                $iFflg = $i;
+                while($i<length($sFmtObj)) {
+                    if (substr($sFmtObj, $i, 1) eq '/'){
+                        $iBunFlg = 1;
+                    }
+                    elsif (substr($sFmtObj, $i, 1) eq '?'){
+                        ;
+                    }
+                    else {
+                        if(($iBunFlg) && (substr($sFmtObj, $i, 1) =~ /[0-9]/)) {
+                            ;
+                        }
+                        else {
+                            last;
+                        }
+                    }
+                    $i++;
+                }
+                $i--;
+                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#]+)/){
+                    push @aRep, [substr($sFmtObj, $i, length($&)), $i, length($&)];
+                    $i +=length($&);
+                }
+                $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];
+                    $iFugouFlg = 1;
+                }
+                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 '%') {
+                    $iPer = 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) {
+                push @aRep, ['am/pm', length($sFmtRes), 5];
+                $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') {
+                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') 
+                ) {
+                push @aRep, [substr($sFmtObj, $i, 4), length($sFmtRes), 4];
+                $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];
+                }
+                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];
+                }
+                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;
+            }
+        }
+        elsif((substr($sFmtObj, $i, 3) eq '[h]')) {
+            push @aRep, ['[h]', length($sFmtRes), 3];
+            $i+=3;
+        }
+        elsif((substr($sFmtObj, $i, 4) eq '[mm]')) {
+            push @aRep, ['[mm]', length($sFmtRes), 4];
+            $i+=4;
+        }
+        elsif($sWk eq '@') {
+            push @aRep, ['@', length($sFmtRes), 1];
+            $i++;
+        }
+        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);
+    }
+#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/)) {
+        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 $sRep;
+        for(my $iIt=$#aRep; $iIt>=0;$iIt--) {
+            my $rItem = $aRep[$iIt];
+            if((scalar @$rItem) >=4) {
+    #Min
+                if($rItem->[0] eq 'mm') {
+                    $sRep = sprintf("%02d", $aTime[1]);
+                }
+                else {
+                    $sRep = sprintf("%d", $aTime[1]);
+                }
+            }
+    #Year
+            elsif($rItem->[0] eq 'yyyy') {
+                $sRep = sprintf('%04d', $aTime[5]);
+            }
+            elsif($rItem->[0] eq 'yy') {
+                $sRep = sprintf('%02d', $aTime[5] % 100);
+            }
+    #Mon
+            elsif($rItem->[0] eq 'mmmmm') {
+                $sRep = substr($aMonNm[$aTime[4]], 0, 1);
+            }
+            elsif($rItem->[0] eq 'mmmm') {
+                $sRep = $aMonL[$aTime[4]];
+            }
+            elsif($rItem->[0] eq 'mmm') {
+                $sRep = $aMonNm[$aTime[4]];
+            }
+            elsif($rItem->[0] eq 'mm') {
+                $sRep = sprintf('%02d', $aTime[4]);
+            }
+            elsif($rItem->[0] eq 'm') {
+                $sRep = sprintf('%d', $aTime[4]);
+            }
+    #Day
+            elsif($rItem->[0] eq 'dddd') {
+                $sRep = $aWeekL[$aTime[7]];
+            }
+            elsif($rItem->[0] eq 'ddd') {
+                $sRep = $aWeekNm[$aTime[7]];
+            }
+            elsif($rItem->[0] eq 'dd') {
+                $sRep = sprintf('%02d', $aTime[3]);
+            }
+            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 {
+                    $sRep = sprintf('%02d', $aTime[2]);
+                }
+            }
+            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') {
+                $sRep = sprintf('%02d', $aTime[0]);
+            }
+            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 '.') {
+                $sRep = '.';
+            }
+            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]') {
+                $sRep = sprintf('%d', int($iData) * 24 + $aTime[2]);
+            }
+            elsif($rItem->[0] eq '[mm]') {
+                $sRep = sprintf('%d', (int($iData) * 24 + $aTime[2])*60 + $aTime[1]);
+            }
+#NENGO(Japanese)
+            elsif($rItem->[0] eq 'ge') {
+                $sRep = Spreadsheet::ParseExcel::FmtJapan::CnvNengo(1, @aTime);
+            }
+            elsif($rItem->[0] eq 'ggge') {
+                $sRep = Spreadsheet::ParseExcel::FmtJapan::CnvNengo(2, @aTime);
+            }
+            elsif($rItem->[0] eq '@') {
+                $sRep = $iData;
+            }
+
+#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 ',') {
+                $iCmmCnt--;
+                substr($sFmtRes, $aRep[$#aRep]->[1], $aRep[$#aRep]->[2]) = '';
+                $iData /= 1000;
+                pop @aRep;
+            }
+
+            my $sNumFmt = join('', map {$_->[0]} @aRep);
+            my $sNumRes;
+            my $iTtl=0;
+            my $iE=0;
+            my $iP=0;
+            my $iInt = 0;
+            my $iAftP=undef;
+            foreach my $sItem (split //, $sNumFmt) {
+                if($sItem eq '.') {
+                    $iTtl++;
+                    $iP = 1;
+                }
+                elsif(($sItem eq 'E') || ($sItem eq 'e')){
+                    $iE = 1;
+                }
+                elsif($sItem eq '0') {
+                    $iTtl++;
+                    $iAftP++ if($iP);
+                    $iInt = 1;
+                }
+                elsif($sItem eq '#') {
+                    #$iTtl++;
+                    $iAftP++ if($iP);
+                    $iInt = 1;
+                }
+                elsif($sItem eq '?') {
+                    #$iTtl++;
+                    $iAftP++ if($iP);
+                }
+            }
+#print "DATA:$iData\n";
+            $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("%0${iTtl}.${iAftP}f", $iDData);
+                    $sNumRes = sprintf(
+                         (defined($iAftP)? 
+                         "%0${iTtl}.${iAftP}f": "%0${iTtl}f"), $iDData);
+                }
+                else {
+    #print "DATA:", $iDData, "\n";
+                    $sNumRes = sprintf("%0${iTtl}.0f", $iDData);
+                }
+            }
+#print "sNum:$sNumRes\n";
+            $sNumRes = AddComma($sNumRes) if($iCmmCnt > 0);
+#print "RES:$sNumRes\n";
+            my $iLen = length($sNumRes);
+            my $iPPos = -1;
+            my $sRep;
+
+            for(my $iIt=$#aRep; $iIt>=0;$iIt--) {
+                my $rItem = $aRep[$iIt];
+#print "Rep:", unpack("H*", $rItem->[0]), "\n";
+                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 '@') {
+                    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") ){
+                    substr($sFmtRes, $rItem->[1], $rItem->[2]) = $rItem->[0];
+                            # ($iData > 0)? '': (($iData==0)? '':$rItem->[0]);
+                }
+                elsif(($rItem->[0] eq '(') or ($rItem->[0] eq ')')){
+                    substr($sFmtRes, $rItem->[1], $rItem->[2]) = $rItem->[0];
+                         # ($iData > 0)? '': (($iData==0)? '':$rItem->[0]);
+                }
+                else {
+                    if($iLen>0) {
+                        if($iIt <= 0) {
+                            $sRep = substr($sNumRes, 0, $iLen);
+                            $iLen = 0;
+                        }
+                        else {
+                            my $iReal = length($rItem->[0]);
+                            if($iPPos >= 0) {
+                                my $sWkF = $rItem->[0];
+                                $sWkF=~s/^#+//;
+                                $iReal = length($sWkF);
+                                $iReal = ($iLen <=$iReal)? $iLen:$iReal;
+                            }
+                            else {
+                                $iReal = ($iLen <=$iReal)? $iLen:$iReal;
+                            }
+                            $sRep = substr($sNumRes, $iLen - $iReal, $iReal);
+                            $iLen -=$iReal;
+                        }
+                    }
+                    else {
+                            $sRep = '';
+                    }
+                    substr($sFmtRes, $rItem->[1], $rItem->[2]) = "\x00" . $sRep;
+                }
+            }
+            $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--) {
+            my $rItem = $aRep[$iIt];
+            if($rItem->[0] eq '@') {
+                substr($sFmtRes, $rItem->[1], $rItem->[2]) = $iData;
+                $iAtMk++;
+            }
+            else {
+                substr($sFmtRes, $rItem->[1], $rItem->[2]) = '';
+            }
+        }
+        $sFmtRes = $iData unless($iAtMk);
+    }
+    return wantarray()? ($sFmtRes, $sColor) : $sFmtRes;
+}
+#------------------------------------------------------------------------------
+# AddComma (for Spreadsheet::ParseExcel::Utility)
+#------------------------------------------------------------------------------
+sub AddComma($) {
+    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) {
+            substr($sObj, $i, 0) = ',';
+        }
+        return $sPre . $sObj . $sAft;
+    }
+    else {
+        return $sNum;
+    }
+}
+#------------------------------------------------------------------------------
+# MakeBun (for Spreadsheet::ParseExcel::Utility)
+#------------------------------------------------------------------------------
+sub MakeBun($$;$) {
+    my($sFmt, $iData, $iFlg) = @_;
+    my $iBunbo;
+    my $iShou;
+
+#1. Init
+#print "FLG: $iFlg\n";
+    if($iFlg) {
+        $iShou = $iData - int($iData);
+        return '' if($iShou == 0);
+    }
+    else {
+        $iShou = $iData;
+    }
+    $iShou = abs($iShou);
+    my $sSWk;
+
+#2.Calc BUNBO
+#2.1 BUNBO defined
+    if($sFmt =~ /\/(\d+)$/) {
+        $iBunbo = $1;
+        return sprintf("%d/%d", $iShou*$iBunbo, $iBunbo);
+    }
+    else {
+#2.2 Calc BUNBO
+        $sFmt =~ /\/(\?+)$/;
+        my $iKeta = length($1);
+        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;
+                $sSWk = sprintf("%d/%d", $iBunsi, $iBunbo);
+                last if($iSWk==0);
+            }
+        }
+        return $sSWk;
+    }
+}
+#------------------------------------------------------------------------------
+# MakeE (for Spreadsheet::ParseExcel::Utility)
+#------------------------------------------------------------------------------
+sub MakeE($$) {
+    my($sFmt, $iData) = @_;
+
+    $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;
+
+    my $sUe = ExcelFmt($sKari, $iData*(10**($iLog10*-1)),0);
+    my $sShita = ExcelFmt($sSisu, $iLog10, 0);
+    return $sUe . $sE . $sShita;
+}
+#------------------------------------------------------------------------------
+# LeapYear (for Spreadsheet::ParseExcel::Utility)
+#------------------------------------------------------------------------------
+sub LeapYear($) {
+    my($iYear)=@_;
+    return 1 if($iYear==1900); #Special for Excel
+    return ((($iYear % 4)==0) && (($iYear % 100) || ($iYear % 400)==0))? 1: 0;
+}
+#------------------------------------------------------------------------------
+# LocaltimeExcel (for Spreadsheet::ParseExcel::Utility)
+#------------------------------------------------------------------------------
+sub LocaltimeExcel($$$$$$;$$) {
+    my($iSec, $iMin, $iHour, $iDay, $iMon, $iYear, $iMSec, $flg1904) = @_;
+
+#0. Init
+    $iMon++;
+    $iYear+=1900;
+
+#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)
+    my $iY;
+    my $iYDays;
+
+#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!)
+    }
+    while($iY<$iYear) {
+        $iTime += $iYDays;
+        $iY++;
+        $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) {
+            $iTime += 31;
+        }
+        elsif($iM == 4 || $iM == 6 || $iM == 9 || $iM == 11) {
+            $iTime += 30;
+        }
+        elsif($iM == 2) {
+            $iTime += (LeapYear($iYear))? 29: 28;
+        }
+    }
+    $iTime+=$iDay;
+    return $iTime;
+}
+#------------------------------------------------------------------------------
+# ExcelLocaltime (for Spreadsheet::ParseExcel::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;
+    }
+    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;
+  }
+
+#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::ParseExcel::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 ;
+
+    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 ;
+    }
+    # this is one out as we range 0..x-1 not 1..x
+    $result-- ;
+
+    return $result ;
+}
+# -----------------------------------------------------------------------------
+# int2col (for Spreadsheet::ParseExcel::Utility)
+#------------------------------------------------------------------------------
+### int2col
+# convert a column number into column letters
+# @note this is quite a brute force coarse method
+#   does not manage values over 701 (ZZ)
+# @arg number, to convert
+# @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 ;
+}
+# -----------------------------------------------------------------------------
+# sheetRef (for Spreadsheet::ParseExcel::Utility)
+#------------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+### sheetRef
+# convert an excel letter-number address into a useful array address
+# @note that also Excel uses X-Y notation, we normally use Y-X in arrays
+# @args $str, excel coord eg. A2
+# @returns an array - 2 elements - column, row, or undefined
+#
+sub sheetRef {
+    my $str = shift ;
+    my @ret ;
+
+    $str =~ m/^(\D+)(\d+)$/ ;
+
+    if( $1 && $2) {
+        push( @ret, $2 -1, col2int($1)) ;
+    }
+    if( $ret[0] < 0) {
+        undef @ret ;
+    }
+
+    return @ret ;
+}
+# -----------------------------------------------------------------------------
+# xls2csv (for Spreadsheet::ParseExcel::Utility)
+#------------------------------------------------------------------------------
+### xls2csv
+# convert a chunk of an excel file into csv text chunk
+# @args $param, sheet-colrow:colrow (1-A1:B2 or A1:B2 for sheet 1
+# @args $rotate, 0 or 1 decides if output should be rotated or not
+# @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 ;
+    }
+
+    # now extract the start and end regions
+    $regions =~ m/(.*):(.*)/ ;
+
+    if( !$1 || !$2) {
+        print STDERR "Bad Params";
+        return "" ;
+    }
+
+   my @start = sheetRef( $1) ;
+   my @end = sheetRef( $2) ;
+   if( !@start) {
+        print STDERR "Bad coorinates - $1";
+        return "" ;
+   }
+   if( !@end) {
+        print STDERR "Bad coorinates - $2";
+        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]) {
+        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::ParseExcel ;
+   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}) {
+        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" ;
+    }
+     } 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 ;
+}
+
+1;
+__END__
+
+=head1 NAME
+
+Spreadsheet::ParseExcel::Utility - Utility function for Spreadsheet::ParseExcel
+
+=head1 SYNOPSIS
+
+    use strict;
+    #Declare
+    use Spreadsheet::ParseExcel::Utility qw(ExcelFmt ExcelLocaltime LocaltimeExcel);
+    
+    #Convert localtime ->Excel Time
+    my $iBirth = LocaltimeExcel(11, 10, 12, 23, 2, 64);
+                               # = 1964-3-23 12:10:11
+    print $iBirth, "\n";       # 23459.5070717593
+    
+    #Convert Excel Time -> localtime
+    my @aBirth = ExcelLocaltime($iBirth, undef);
+    print join(":", @aBirth), "\n";   # 11:10:12:23:2:64:1:0
+    
+    #Formatting
+    print ExcelFmt('yyyy-mm-dd', $iBirth), "\n"; #1964-3-23
+    print ExcelFmt('m-d-yy', $iBirth), "\n";     # 3-23-64
+    print ExcelFmt('#,##0', $iBirth), "\n";      # 23,460
+    print ExcelFmt('#,##0.00', $iBirth), "\n";   # 23,459.51
+    print ExcelFmt('"My Birthday is (m/d):" m/d', $iBirth), "\n";
+                                      # My Birthday is (m/d): 3/23
+
+=head1 DESCRIPTION
+
+Spreadsheet::ParseExcel::Utility exports utility functions concerned with Excel format setting.
+
+=head1 Functions
+
+This module can export 3 functions: ExcelFmt, ExcelLocaltime and LocaltimeExcel.
+
+=head2 ExcelFmt
+
+$sTxt = ExcelFmt($sFmt, $iData [, $i1904]);
+
+I<$sFmt> is a format string for Excel. I<$iData> is the target value.
+If I<$flg1904> is true, this functions assumes that epoch is 1904.
+I<$sTxt> is the result.
+
+For more detail and examples, please refer sample/chkFmt.pl in this distribution.
+
+ex.
+  
+=head2 ExcelLocaltime
+
+($iSec, $iMin, $iHour, $iDay, $iMon, $iYear, $iwDay, $iMSec) = 
+            ExcelLocaltime($iExTime [, $flg1904]);
+
+I<ExcelLocaltime> converts time information in Excel format into Perl localtime format.
+I<$iExTime> is a time of Excel. If I<$flg1904> is true, this functions assumes that
+epoch is 1904.
+I<$iSec>, I<$iMin>, I<$iHour>, I<$iDay>, I<$iMon>, I<$iYear>, I<$iwDay> are same as localtime.
+I<$iMSec> means 1/1,000,000 seconds(ms).
+
+
+=head2 LocaltimeExcel
+
+I<$iExTime> = LocaltimeExcel($iSec, $iMin, $iHour, $iDay, $iMon, $iYear [,$iMSec] [,$flg1904])
+
+I<LocaltimeExcel> converts time information in Perl localtime format into Excel format .
+I<$iSec>, I<$iMin>, I<$iHour>, I<$iDay>, I<$iMon>, I<$iYear> are same as localtime.
+
+If I<$flg1904> is true, this functions assumes that epoch is 1904.
+I<$iExTime> is a time of Excel. 
+
+=head2 col2int
+
+I<$iInt> = col2int($sCol);
+
+converts a excel row letter into an int for use in an array
+
+This function was contributed by Kevin Mulholland.
+
+=head2 int2col
+
+I<$sCol> = int2col($iRow);
+
+convert a column number into column letters
+NOET: This is quite a brute force coarse method does not manage values over 701 (ZZ)
+
+This function was contributed by Kevin Mulholland.
+
+=head2 sheetRef
+
+(I<$iRow>, I<$iCol>) = sheetRef($sStr);
+
+convert an excel letter-number address into a useful array address
+NOTE: That also Excel uses X-Y notation, we normally use Y-X in arrays
+$sStr, excel coord (eg. A2).
+
+This function was contributed by Kevin Mulholland.
+
+=head2 xls2csv
+
+$sCsvTxt = xls2csv($sFileName, $sRegion, $iRotate);
+
+convert a chunk of an excel file into csv text chunk
+$sRegions = "sheet-colrow:colrow" (ex. '1-A1:B2' means 'A1:B2' for sheet 1)
+$iRotate  = 0 or 1 (output should be rotated or not)
+
+This function was contributed by Kevin Mulholland.
+
+=head1 AUTHOR
+
+Kawai Takanori (Hippo2000) kwitknr at cpan.org
+
+    http://member.nifty.ne.jp/hippo2000/            (Japanese)
+    http://member.nifty.ne.jp/hippo2000/index_e.htm (English)
+
+=head1 SEE ALSO
+
+Spreadsheet::ParseExcel, Spreadsheet::WriteExcel
+
+=head1 COPYRIGHT
+
+This module is part of the Spreadsheet::ParseExcel distribution.
+
+=cut

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel.pm
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel.pm	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/ParseExcel.pm	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,2640 @@
+# Spreadsheet::ParseExcel
+#  by Kawai, Takanori (Hippo2000) 2000.10.2
+#                                 2001. 2.2 (Ver. 0.15)
+# This Program is ALPHA version.
+#//////////////////////////////////////////////////////////////////////////////
+# Spreadsheet::ParseExcel Objects
+#//////////////////////////////////////////////////////////////////////////////
+use Spreadsheet::ParseExcel::FmtDefault;
+#==============================================================================
+# Spreadsheet::ParseExcel::Workbook
+#==============================================================================
+package Spreadsheet::ParseExcel::Workbook;
+require Exporter;
+use strict;
+use vars qw($VERSION @ISA);
+ at ISA = qw(Exporter);
+sub new($) {
+  my ($sClass) = @_;
+  my $oThis = {};
+  bless $oThis, $sClass;
+}
+#------------------------------------------------------------------------------
+# Spreadsheet::ParseExcel::Workbook->ParseAbort
+#------------------------------------------------------------------------------
+sub ParseAbort($$) {
+    my($oThis, $sVal) =@_;
+    $oThis->{_ParseAbort} = $sVal;
+}
+#------------------------------------------------------------------------------
+# Spreadsheet::ParseExcel::Workbook->Parse
+#------------------------------------------------------------------------------
+sub Parse($$;$) {
+    my($sClass, $sFile, $oFmt) =@_;
+    my $_oEx = new Spreadsheet::ParseExcel;
+    my $oBook = $_oEx->Parse($sFile, $oFmt);
+    $oBook->{_Excel} = $_oEx;
+    $oBook;
+}
+#------------------------------------------------------------------------------
+# Spreadsheet::ParseExcel::Workbook Worksheet
+#------------------------------------------------------------------------------
+sub Worksheet($$) {
+    my($oBook, $sName) =@_;
+    my $oWkS;
+    foreach $oWkS (@{$oBook->{Worksheet}}) {
+        return $oWkS if($oWkS->{Name} eq $sName);
+    }
+    if($sName =~ /^\d+$/) {
+        return $oBook->{Worksheet}->[$sName];
+    }
+    return undef;
+}
+#==============================================================================
+# Spreadsheet::ParseExcel::Worksheet
+#==============================================================================
+package Spreadsheet::ParseExcel::Worksheet;
+require Exporter;
+use strict;
+sub sheetNo($);
+use overload 
+    '0+'        => \&sheetNo,
+    'fallback'  => 1,
+;
+use vars qw($VERSION @ISA);
+ at ISA = qw(Exporter);
+sub new($%) {
+  my ($sClass, %rhIni) = @_;
+  my $oThis = \%rhIni;
+
+  $oThis->{Cells}=undef;
+  $oThis->{DefColWidth}=8.38;
+  bless $oThis, $sClass;
+}
+#------------------------------------------------------------------------------
+# Spreadsheet::ParseExcel::Worksheet->sheetNo
+#------------------------------------------------------------------------------
+sub sheetNo($){
+    my($oSelf) = @_;
+    return $oSelf->{_SheetNo};
+}
+#------------------------------------------------------------------------------
+# Spreadsheet::ParseExcel::Worksheet->Cell
+#------------------------------------------------------------------------------
+sub Cell($$$){
+    my($oSelf, $iR, $iC) = @_;
+
+    # return undef if no arguments are given or if no cells are defined
+    return  if ((!defined($iR)) || (!defined($iC)) ||
+                (!defined($oSelf->{MaxRow})) || (!defined($oSelf->{MaxCol})));
+    
+    # return undef if outside defined rectangle
+    return  if (($iR < $oSelf->{MinRow}) || ($iR > $oSelf->{MaxRow}) ||
+                ($iC < $oSelf->{MinCol}) || ($iC > $oSelf->{MaxCol}));
+    
+    # return the Cell object
+    return $oSelf->{Cells}[$iR][$iC];
+}
+#------------------------------------------------------------------------------
+# Spreadsheet::ParseExcel::Worksheet->RowRange
+#------------------------------------------------------------------------------
+sub RowRange($){
+    my($oSelf) = @_;
+    my $iMin = $oSelf->{MinRow} || 0;
+    my $iMax = defined($oSelf->{MaxRow}) ? $oSelf->{MaxRow} : ($iMin-1);
+
+    # return the range
+    return($iMin, $iMax);
+}
+#------------------------------------------------------------------------------
+# Spreadsheet::ParseExcel::Worksheet->ColRange
+#------------------------------------------------------------------------------
+sub ColRange($){
+    my($oSelf) = @_;
+    my $iMin = $oSelf->{MinCol} || 0;
+    my $iMax = defined($oSelf->{MaxCol}) ? $oSelf->{MaxCol} : ($iMin-1);
+
+    # return the range
+    return($iMin, $iMax);
+}
+
+#==============================================================================
+# Spreadsheet::ParseExcel::Font
+#==============================================================================
+package Spreadsheet::ParseExcel::Font;
+require Exporter;
+use strict;
+use vars qw($VERSION @ISA);
+ at ISA = qw(Exporter);
+sub new($%) {
+  my($sClass, %rhIni) = @_;
+  my $oThis = \%rhIni;
+
+  bless $oThis, $sClass;
+}
+#==============================================================================
+# Spreadsheet::ParseExcel::Format
+#==============================================================================
+package Spreadsheet::ParseExcel::Format;
+require Exporter;
+use strict;
+use vars qw($VERSION @ISA);
+ at ISA = qw(Exporter);
+sub new($%) {
+  my($sClass, %rhIni) = @_;
+  my $oThis = \%rhIni;
+
+  bless $oThis, $sClass;
+}
+#==============================================================================
+# Spreadsheet::ParseExcel::Cell
+#==============================================================================
+package Spreadsheet::ParseExcel::Cell;
+require Exporter;
+use strict;
+use vars qw($VERSION @ISA);
+ at ISA = qw(Exporter);
+
+sub new($%) {
+    my($sPkg, %rhKey)=@_;
+    my($sWk, $iLen);
+    my $oThis = \%rhKey;
+
+    bless $oThis, $sPkg;
+}
+
+sub Value($){
+    my($oThis)=@_;
+    return $oThis->{_Value};
+}
+#==============================================================================
+# Spreadsheet::ParseExcel
+#==============================================================================
+package Spreadsheet::ParseExcel;
+require Exporter;
+use strict;
+use OLE::Storage_Lite;
+use vars qw($VERSION @ISA);
+ at ISA = qw(Exporter);
+$VERSION = '0.2603'; # 
+my @aColor =
+(
+    '000000',   # 0x00
+    'FFFFFF', 'FFFFFF', 'FFFFFF', 'FFFFFF',
+    'FFFFFF', 'FFFFFF', 'FFFFFF', 'FFFFFF', #0x08 - This one's Black, too ???
+    'FFFFFF', 'FF0000', '00FF00', '0000FF',
+    'FFFF00', 'FF00FF', '00FFFF', '800000', # 0x10
+    '008000', '000080', '808000', '800080',
+    '008080', 'C0C0C0', '808080', '9999FF', # 0x18
+    '993366', 'FFFFCC', 'CCFFFF', '660066',
+    'FF8080', '0066CC', 'CCCCFF', '000080', # 0x20
+    'FF00FF', 'FFFF00', '00FFFF', '800080',
+    '800000', '008080', '0000FF', '00CCFF', # 0x28
+    'CCFFFF', 'CCFFCC', 'FFFF99', '99CCFF',
+    'FF99CC', 'CC99FF', 'FFCC99', '3366FF', # 0x30
+    '33CCCC', '99CC00', 'FFCC00', 'FF9900',
+    'FF6600', '666699', '969696', '003366', # 0x38
+    '339966', '003300', '333300', '993300',
+    '993366', '333399', '333333', 'FFFFFF'  # 0x40
+);
+use constant verExcel95 => 0x500;
+use constant verExcel97 =>0x600;
+use constant verBIFF2 =>0x00;
+use constant verBIFF3 =>0x02;
+use constant verBIFF4 =>0x04;
+use constant verBIFF5 =>0x08;
+use constant verBIFF8 =>0x18;   #Added (Not in BOOK)
+
+my %ProcTbl =(
+#Develpers' Kit P291
+    0x14    => \&_subHeader,            # Header
+    0x15    => \&_subFooter,            # Footer
+    0x18    => \&_subName,              # NAME(?)
+    0x1A    => \&_subVPageBreak,        # Veritical Page Break
+    0x1B    => \&_subHPageBreak,        # Horizontal Page Break
+    0x22    => \&_subFlg1904,           # 1904 Flag
+    0x26    => \&_subMergin,            # Left Mergin
+    0x27    => \&_subMergin,            # Right Mergin
+    0x28    => \&_subMergin,            # Top Mergin
+    0x29    => \&_subMergin,            # Bottom Mergin
+    0x2A    => \&_subPrintHeaders,      # Print Headers
+    0x2B    => \&_subPrintGridlines,    # Print Gridlines
+    0x3C    => \&_subContinue,          # Continue
+    0x43    => \&_subXF,                # ExTended Format(?)
+#Develpers' Kit P292
+    0x55   =>\&_subDefColWidth,         # Consider
+    0x5C    => \&_subWriteAccess,       # WRITEACCESS
+    0x7D    => \&_subColInfo,           # Colinfo
+    0x7E    => \&_subRK,                # RK
+    0x81    => \&_subWSBOOL,            # WSBOOL
+    0x83    => \&_subHcenter,           # HCENTER
+    0x84    => \&_subVcenter,           # VCENTER
+    0x85    => \&_subBoundSheet,        # BoundSheet
+
+    0x92    => \&_subPalette,           # Palette, fgp
+
+    0x99    => \&_subStandardWidth,     # Standard Col
+#Develpers' Kit P293
+    0xA1    => \&_subSETUP,             # SETUP
+    0xBD    => \&_subMulRK,             # MULRK
+    0xBE    => \&_subMulBlank,          # MULBLANK
+    0xD6    => \&_subRString,           # RString
+#Develpers' Kit P294
+    0xE0    => \&_subXF,                # ExTended Format
+    0xE5    => \&_subMergeArea,         # MergeArea (Not Documented)
+    0xFC    => \&_subSST,               # Shared String Table
+    0xFD    => \&_subLabelSST,          # Label SST
+#Develpers' Kit P295
+    0x201   => \&_subBlank,             # Blank
+
+    0x202   => \&_subInteger,           # Integer(Not Documented)
+    0x203   => \&_subNumber,            # Number
+    0x204   => \&_subLabel ,            # Label
+    0x205   => \&_subBoolErr,           # BoolErr
+    0x207   => \&_subString,            # STRING
+    0x208   => \&_subRow,               # RowData
+    0x221   => \&_subArray,             #Array (Consider)
+    0x225   => \&_subDefaultRowHeight,  # Consider
+
+
+    0x31    => \&_subFont,              # Font
+    0x231   => \&_subFont,              # Font
+
+    0x27E   => \&_subRK,                # RK
+    0x41E   => \&_subFormat,            # Format
+
+    0x06    => \&_subFormula,           # Formula
+    0x406   => \&_subFormula,           # Formula
+
+    0x09    => \&_subBOF,               # BOF(BIFF2)
+    0x209   => \&_subBOF,               # BOF(BIFF3)
+    0x409   => \&_subBOF,               # BOF(BIFF4)
+    0x809   => \&_subBOF,               # BOF(BIFF5-8)
+    );
+
+my $BIGENDIAN;
+my $PREFUNC;
+my $_CellHandler;
+my $_NotSetCell;
+my $_Object;
+#------------------------------------------------------------------------------
+# Spreadsheet::ParseExcel->new
+#------------------------------------------------------------------------------
+sub new($;%) {
+    my ($sPkg, %hParam) =@_;
+
+#0. Check ENDIAN(Little: Interl etc. BIG: Sparc etc)
+    $BIGENDIAN = (defined $hParam{Endian})? $hParam{Endian} :
+                    (unpack("H08", pack("L", 2)) eq '02000000')? 0: 1;
+    my $oThis = {};
+    bless $oThis, $sPkg;
+
+#1. Set Parameter
+#1.1 Get Content
+    $oThis->{GetContent} = \&_subGetContent;
+
+#1.2 Set Event Handler
+    if($hParam{EventHandlers}) {
+        $oThis->SetEventHandlers($hParam{EventHandlers});
+    }
+    else {
+        $oThis->SetEventHandlers(\%ProcTbl);
+    }
+    if($hParam{AddHandlers}) {
+        foreach my $sKey (keys(%{$hParam{AddHandlers}})) {
+            $oThis->SetEventHandler($sKey, $hParam{AddHandlers}->{$sKey});
+        }
+    }
+#Experimental
+    $_CellHandler = $hParam{CellHandler} if($hParam{CellHandler});
+    $_NotSetCell  = $hParam{NotSetCell};
+    $_Object      = $hParam{Object};
+
+    return $oThis;
+}
+#------------------------------------------------------------------------------
+# Spreadsheet::ParseExcel->SetEventHandler
+#------------------------------------------------------------------------------
+sub SetEventHandler($$\&) {
+    my($oThis, $sKey, $oFunc) = @_;
+    $oThis->{FuncTbl}->{$sKey} = $oFunc;
+}
+#------------------------------------------------------------------------------
+# Spreadsheet::ParseExcel->SetEventHandlers
+#------------------------------------------------------------------------------
+sub SetEventHandlers($$) {
+    my($oThis, $rhTbl) = @_;
+    $oThis->{FuncTbl} = undef;
+    foreach my $sKey (keys %$rhTbl) {
+        $oThis->{FuncTbl}->{$sKey} = $rhTbl->{$sKey};
+    }
+}
+#------------------------------------------------------------------------------
+# Spreadsheet::ParseExcel->Parse
+#------------------------------------------------------------------------------
+sub Parse($$;$) {
+    my($oThis, $sFile, $oWkFmt)=@_;
+    my($sWk, $bLen);
+
+#0. New $oBook
+    my $oBook = Spreadsheet::ParseExcel::Workbook->new;
+    $oBook->{SheetCount} = 0;
+
+#1.Get content
+    my($sBIFF, $iLen);
+    
+    if(ref($sFile) eq "SCALAR") {
+#1.1 Specified by Buffer
+        ($sBIFF, $iLen) = $oThis->{GetContent}->($sFile);
+        return undef unless($sBIFF);	
+    }
+#1.2 Specified by Other Things(HASH reference etc)
+#    elsif(ref($sFile)) {
+#        return undef;
+#    }
+#1.2 Specified by GLOB reference
+     elsif((ref($sFile) =~ /GLOB/) or
+           (ref($sFile) eq 'Fh')) { #For CGI.pm (Light FileHandle)
+        binmode($sFile);
+        my $sWk;
+        my $sBuff='';
+        while(read($sFile, $sWk, 4096)) {
+            $sBuff .= $sWk;
+        }                
+        ($sBIFF, $iLen) = $oThis->{GetContent}->(\$sBuff);
+        return undef unless($sBIFF);
+     }
+    elsif(ref($sFile) eq 'ARRAY') {
+#1.3 Specified by File content
+        $oBook->{File} = undef;
+        my $sData = join('', @$sFile);
+        ($sBIFF, $iLen) = $oThis->{GetContent}->(\$sData);
+        return undef unless($sBIFF);
+    }
+    else {
+#1.4 Specified by File name
+        $oBook->{File} = $sFile;
+        return undef unless (-e $sFile);
+        ($sBIFF, $iLen) = $oThis->{GetContent}->($sFile);
+        return undef unless($sBIFF);
+    }
+
+#2. Ready for format
+    if ($oWkFmt) {
+        $oBook->{FmtClass} = $oWkFmt;
+    }
+    else {
+#        require Spreadsheet::ParseExcel::FmtDefault;
+        $oBook->{FmtClass} = new Spreadsheet::ParseExcel::FmtDefault;
+    }
+
+#3. Parse content
+    my $lPos = 0;
+    $sWk = substr($sBIFF, $lPos, 4);
+    $lPos += 4;
+    my $iEfFlg = 0;
+    while($lPos<=$iLen) {
+        my($bOp, $bLen) = unpack("v2", $sWk);
+       if($bLen) {
+            $sWk = substr($sBIFF, $lPos, $bLen);
+            $lPos += $bLen;
+        }
+#printf STDERR "%4X:%s\n", $bOp, 'UNDEFIND---:' . unpack("H*", $sWk) unless($NameTbl{$bOp});
+        #Check EF, EOF
+        if($bOp == 0xEF) {    #EF
+            $iEfFlg = $bOp;
+        }
+        elsif($bOp == 0x0A) { #EOF
+            undef $iEfFlg;
+        }
+        unless($iEfFlg) {
+        #1. Formula String with No String 
+            if($oBook->{_PrevPos} && (defined $oThis->{FuncTbl}->{$bOp}) &&
+                ($bOp != 0x207)) {
+                my $iPos = $oBook->{_PrevPos};
+                $oBook->{_PrevPos} = undef;
+                my ($iR, $iC, $iF) = @$iPos; 
+                _NewCell (
+                    $oBook, $iR, $iC,
+                    Kind    => 'Formula String',
+                    Val     => '',
+                    FormatNo=> $iF,
+                    Format  => $oBook->{Format}[$iF],
+                    Numeric => 0,
+                    Code    => undef,
+                    Book    => $oBook,
+                );                         
+            }
+            if(defined $oThis->{FuncTbl}->{$bOp}) {
+                $oThis->{FuncTbl}->{$bOp}->($oBook, $bOp, $bLen, $sWk);
+            }
+            $PREFUNC = $bOp if ($bOp != 0x3C); #Not Continue 
+        }
+        $sWk = substr($sBIFF, $lPos, 4) if(($lPos+4) <= $iLen);
+        $lPos += 4;
+        #Abort Parse
+        if(defined $oBook->{_ParseAbort}) {
+            return $oBook;
+        }
+    }
+#4.return $oBook
+    return $oBook;
+}
+#------------------------------------------------------------------------------
+# _subGetContent (for Spreadsheet::ParseExcel)
+#------------------------------------------------------------------------------
+sub _subGetContent($)
+{
+        
+    my($sFile)=@_;
+    
+    # warn qq{_subGetContent called; sFile:}, ref $sFile;
+    
+    my $oOl = OLE::Storage_Lite->new($sFile);
+    return (undef, undef) unless($oOl);
+    my @aRes = $oOl->getPpsSearch(
+            [OLE::Storage_Lite::Asc2Ucs('Book'), 
+             OLE::Storage_Lite::Asc2Ucs('Workbook')], 1, 1);
+    return (undef, undef) if($#aRes < 0);
+#Hack from Herbert
+    unless($aRes[0]->{Data}) {
+        #Same as OLE::Storage_Lite
+        my $oIo;
+        #1. $sFile is Ref of scalar
+        if(ref($sFile) eq 'SCALAR') {
+            $oIo = new IO::Scalar;
+            $oIo->open($sFile);
+        }
+        #2. $sFile is a IO::Handle object
+        elsif(UNIVERSAL::isa($sFile, 'IO::Handle')) {
+            $oIo = $sFile;
+            binmode($oIo);
+        }
+        #3. $sFile is a simple filename string
+        elsif(!ref($sFile)) {
+            $oIo = new IO::File;
+            $oIo->open("<$sFile") || return undef;
+            binmode($oIo);
+        }
+        my $sWk;
+        my $sBuff ='';
+
+        while($oIo->read($sWk, 4096)) { #4_096 has no special meanings
+            $sBuff .= $sWk;
+        }
+        $oIo->close();
+        #Not Excel file (simple method)
+        return (undef, undef) if (substr($sBuff, 0, 1) ne "\x09");
+        return ($sBuff, length($sBuff));
+    }
+    else {
+        return ($aRes[0]->{Data}, length($aRes[0]->{Data}));
+    }
+}
+#------------------------------------------------------------------------------
+# _subBOF (for Spreadsheet::ParseExcel) Developers' Kit : P303
+#------------------------------------------------------------------------------
+sub _subBOF($$$$){
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my ($iVer, $iDt) = unpack("v2", $sWk);
+
+    #Workbook Global
+    if($iDt==0x0005) {
+        $oBook->{Version} = unpack("v", $sWk);
+        $oBook->{BIFFVersion} = 
+                ($oBook->{Version}==verExcel95)? verBIFF5:verBIFF8;
+        $oBook->{_CurSheet} = undef;
+        $oBook->{_CurSheet_} = -1; 
+    }
+    #Worksheeet or Dialogsheet
+    elsif($iDt != 0x0020) {  #if($iDt == 0x0010) {
+        if(defined $oBook->{_CurSheet_}) {
+            $oBook->{_CurSheet} = $oBook->{_CurSheet_} + 1;
+            $oBook->{_CurSheet_}++; 
+
+            ($oBook->{Worksheet}[$oBook->{_CurSheet}]->{SheetVersion},
+             $oBook->{Worksheet}[$oBook->{_CurSheet}]->{SheetType},) 
+                    = unpack("v2", $sWk) if(length($sWk) > 4);
+        }
+        else {
+            $oBook->{BIFFVersion} = int($bOp / 0x100);
+            if (($oBook->{BIFFVersion} == verBIFF2) ||
+                ($oBook->{BIFFVersion} == verBIFF3) ||
+                ($oBook->{BIFFVersion} == verBIFF4)) {
+                $oBook->{Version} = $oBook->{BIFFVersion};
+                $oBook->{_CurSheet} = 0;
+                $oBook->{Worksheet}[$oBook->{SheetCount}] =
+                    new Spreadsheet::ParseExcel::Worksheet(
+                             _Name => '',
+                              Name => '',
+                             _Book => $oBook,
+                            _SheetNo => $oBook->{SheetCount},
+                        );
+                $oBook->{SheetCount}++;
+            }
+        }
+    }
+    else {
+        ($oBook->{_CurSheet_}, $oBook->{_CurSheet}) =
+            (((defined $oBook->{_CurSheet})? $oBook->{_CurSheet}: -1), 
+                undef);
+    }
+}
+#------------------------------------------------------------------------------
+# _subBlank (for Spreadsheet::ParseExcel) DK:P303
+#------------------------------------------------------------------------------
+sub _subBlank($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my ($iR, $iC, $iF) = unpack("v3", $sWk);
+    _NewCell(
+            $oBook, $iR, $iC,
+            Kind    => 'BLANK',
+            Val     => '',
+            FormatNo=> $iF,
+            Format  => $oBook->{Format}[$iF],
+            Numeric => 0,
+            Code    => undef,
+            Book    => $oBook,
+        );
+#2.MaxRow, MaxCol, MinRow, MinCol
+    _SetDimension($oBook, $iR, $iC, $iC);
+}
+#------------------------------------------------------------------------------
+# _subInteger (for Spreadsheet::ParseExcel) Not in DK
+#------------------------------------------------------------------------------
+sub _subInteger($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my($iR, $iC, $iF, $sTxt, $sDum);
+
+    ($iR, $iC, $iF, $sDum, $sTxt) = unpack("v3cv", $sWk);
+    _NewCell (  
+            $oBook, $iR, $iC,
+                Kind    => 'INTEGER',
+                Val     => $sTxt,
+                FormatNo=> $iF,
+                Format  => $oBook->{Format}[$iF],
+                Numeric => 0,
+                Code    => undef,
+                Book    => $oBook,
+            );
+#2.MaxRow, MaxCol, MinRow, MinCol
+    _SetDimension($oBook, $iR, $iC, $iC);
+}
+#------------------------------------------------------------------------------
+# _subNumber (for Spreadsheet::ParseExcel)  : DK: P354
+#------------------------------------------------------------------------------
+sub _subNumber($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+
+    my ($iR, $iC, $iF) = unpack("v3", $sWk);
+    my $dVal = _convDval(substr($sWk, 6, 8));
+    _NewCell (
+                $oBook, $iR, $iC,
+                Kind    => 'Number',
+                Val     => $dVal,
+                FormatNo=> $iF,
+                Format  => $oBook->{Format}[$iF],
+                Numeric => 1,
+                Code    => undef,
+                Book    => $oBook,
+            );
+#2.MaxRow, MaxCol, MinRow, MinCol
+    _SetDimension($oBook, $iR, $iC, $iC);
+}
+#------------------------------------------------------------------------------
+# _convDval (for Spreadsheet::ParseExcel)
+#------------------------------------------------------------------------------
+sub _convDval($) {
+    my($sWk)=@_;
+    return  unpack("d", ($BIGENDIAN)? 
+                    pack("c8", reverse(unpack("c8", $sWk))) : $sWk);
+}
+#------------------------------------------------------------------------------
+# _subRString (for Spreadsheet::ParseExcel) DK:P405
+#------------------------------------------------------------------------------
+sub _subRString($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my($iR, $iC, $iF, $iL, $sTxt);
+    ($iR, $iC, $iF, $iL) = unpack("v4", $sWk);
+    $sTxt = substr($sWk, 8, $iL);
+
+    #Has STRUN
+    if(length($sWk) > (8+$iL)) {
+        _NewCell (
+            $oBook, $iR, $iC,
+            Kind    => 'RString',
+            Val     => $sTxt,
+            FormatNo=> $iF,
+            Format  => $oBook->{Format}[$iF],
+            Numeric => 0,
+            Code    => '_native_', #undef,
+            Book    => $oBook,
+            Rich    => substr($sWk, (8+$iL)+1),
+        );
+    }
+    else {
+        _NewCell (
+            $oBook, $iR, $iC,
+            Kind    => 'RString',
+            Val     => $sTxt,
+            FormatNo=> $iF,
+            Format  => $oBook->{Format}[$iF],
+            Numeric => 0,
+            Code    => '_native_',
+            Book    => $oBook,
+        );
+    }
+#2.MaxRow, MaxCol, MinRow, MinCol
+    _SetDimension($oBook, $iR, $iC, $iC);
+}
+#------------------------------------------------------------------------------
+# _subBoolErr (for Spreadsheet::ParseExcel) DK:P306
+#------------------------------------------------------------------------------
+sub _subBoolErr($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my ($iR, $iC, $iF) = unpack("v3", $sWk);
+    my ($iVal, $iFlg) = unpack("cc", substr($sWk, 6, 2));
+    my $sTxt = DecodeBoolErr($iVal, $iFlg);
+
+    _NewCell (
+            $oBook, $iR, $iC,
+            Kind    => 'BoolError',
+            Val     => $sTxt,
+            FormatNo=> $iF,
+            Format  => $oBook->{Format}[$iF],
+            Numeric => 0,
+            Code    => undef,
+            Book    => $oBook,
+        );
+#2.MaxRow, MaxCol, MinRow, MinCol
+    _SetDimension($oBook, $iR, $iC, $iC);
+}
+#------------------------------------------------------------------------------
+# _subRK (for Spreadsheet::ParseExcel)  DK:P401
+#------------------------------------------------------------------------------
+sub _subRK($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my ($iR, $iC) = unpack("v3", $sWk);
+
+    my($iF, $sTxt)= _UnpackRKRec(substr($sWk, 4, 6));
+    _NewCell (
+            $oBook, $iR, $iC,
+            Kind    => 'RK',
+            Val     => $sTxt,
+            FormatNo=> $iF,
+            Format  => $oBook->{Format}[$iF],
+            Numeric => 1,
+            Code    => undef,
+            Book    => $oBook,
+        );
+#2.MaxRow, MaxCol, MinRow, MinCol
+    _SetDimension($oBook, $iR, $iC, $iC);
+}
+#------------------------------------------------------------------------------
+# _subArray (for Spreadsheet::ParseExcel)   DK:P297
+#------------------------------------------------------------------------------
+sub _subArray($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my ($iBR, $iER, $iBC, $iEC) = unpack("v2c2", $sWk);
+    
+}
+#------------------------------------------------------------------------------
+# _subFormula (for Spreadsheet::ParseExcel) DK:P336
+#------------------------------------------------------------------------------
+sub _subFormula($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my($iR, $iC, $iF) = unpack("v3", $sWk);
+
+    my ($iFlg) = unpack("v", substr($sWk,12,2));
+    if($iFlg == 0xFFFF) {
+        my($iKind) = unpack("c", substr($sWk, 6, 1));
+        my($iVal)  = unpack("c", substr($sWk, 8, 1));
+
+        if(($iKind==1) or ($iKind==2)) {
+            my $sTxt = ($iKind == 1)? DecodeBoolErr($iVal, 0):DecodeBoolErr($iVal, 1);
+            _NewCell (
+                    $oBook, $iR, $iC,
+                    Kind    => 'Formulra Bool',
+                    Val     => $sTxt,
+                    FormatNo=> $iF,
+                    Format  => $oBook->{Format}[$iF],
+                    Numeric => 0,
+                    Code    => undef,
+                    Book    => $oBook,
+                );
+        }
+        else { # Result (Reserve Only)
+            $oBook->{_PrevPos} = [$iR, $iC, $iF];
+        }
+    }
+    else {
+        my $dVal = _convDval(substr($sWk, 6, 8));
+        _NewCell (
+                $oBook, $iR, $iC,
+                Kind    => 'Formula Number',
+                Val     => $dVal,
+                FormatNo=> $iF,
+                Format  => $oBook->{Format}[$iF],
+                Numeric => 1,
+                Code    => undef,
+                Book    => $oBook,
+            );
+    }
+#2.MaxRow, MaxCol, MinRow, MinCol
+    _SetDimension($oBook, $iR, $iC, $iC);
+}
+#------------------------------------------------------------------------------
+# _subString (for Spreadsheet::ParseExcel)  DK:P414
+#------------------------------------------------------------------------------
+sub _subString($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+#Position (not enough for ARRAY)
+
+    my $iPos = $oBook->{_PrevPos};
+    return undef unless($iPos);
+    $oBook->{_PrevPos} = undef;
+    my ($iR, $iC, $iF) = @$iPos;
+
+    my ($iLen, $sTxt, $sCode);
+    if($oBook->{BIFFVersion} == verBIFF8) {
+        my( $raBuff, $iLen) = _convBIFF8String($oBook, $sWk, 1);
+        $sTxt  = $raBuff->[0];
+        $sCode = ($raBuff->[1])? 'ucs2': undef;
+    }
+    elsif($oBook->{BIFFVersion} == verBIFF5) {
+        $sCode = '_native_';
+        $iLen = unpack("v", $sWk);
+        $sTxt = substr($sWk, 2, $iLen);
+    }
+    else {
+        $sCode = '_native_';
+        $iLen = unpack("c", $sWk);
+        $sTxt = substr($sWk, 1, $iLen);
+    }
+    _NewCell (
+            $oBook, $iR, $iC,
+            Kind    => 'String',
+            Val     => $sTxt,
+            FormatNo=> $iF,
+            Format  => $oBook->{Format}[$iF],
+            Numeric => 0,
+            Code    => $sCode,
+            Book    => $oBook,
+        );
+#2.MaxRow, MaxCol, MinRow, MinCol
+    _SetDimension($oBook, $iR, $iC, $iC);
+}
+#------------------------------------------------------------------------------
+# _subLabel (for Spreadsheet::ParseExcel)   DK:P344
+#------------------------------------------------------------------------------
+sub _subLabel($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my($iR, $iC, $iF) = unpack("v3", $sWk);
+    my ($sLbl, $sCode);
+    #BIFF8
+    if($oBook->{BIFFVersion} >= verBIFF8) {
+        my ( $raBuff, $iLen, $iStPos, $iLenS) = 
+                _convBIFF8String($oBook, substr($sWk,6), 1);
+        $sLbl  = $raBuff->[0];
+        $sCode = ($raBuff->[1])? 'ucs2': undef;
+    }
+    #Before BIFF8
+    else {
+        $sLbl  = substr($sWk,8);
+        $sCode = '_native_';
+    }
+    _NewCell ( 
+            $oBook, $iR, $iC,
+            Kind    => 'Label',
+            Val     => $sLbl,
+            FormatNo=> $iF,
+            Format  => $oBook->{Format}[$iF],
+            Numeric => 0,
+            Code    => $sCode,
+            Book    => $oBook,
+        );
+#2.MaxRow, MaxCol, MinRow, MinCol
+    _SetDimension($oBook, $iR, $iC, $iC);
+}
+#------------------------------------------------------------------------------
+# _subMulRK (for Spreadsheet::ParseExcel)   DK:P349
+#------------------------------------------------------------------------------
+sub _subMulRK($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return if ($oBook->{SheetCount}<=0);
+
+    my ($iR, $iSc) = unpack("v2", $sWk);
+    my $iEc = unpack("v", substr($sWk, length($sWk) -2, 2));
+
+    my $iPos = 4;
+    for(my $iC=$iSc; $iC<=$iEc; $iC++) {
+        my($iF, $lVal) = _UnpackRKRec(substr($sWk, $iPos, 6), $iR, $iC);
+        _NewCell (
+                $oBook, $iR, $iC,
+                Kind    => 'MulRK',
+                Val     => $lVal,
+                FormatNo=> $iF,
+                Format  => $oBook->{Format}[$iF],
+                Numeric => 1,
+                Code => undef,
+                Book    => $oBook,
+                );
+        $iPos += 6;
+    }
+#2.MaxRow, MaxCol, MinRow, MinCol
+    _SetDimension($oBook, $iR, $iSc, $iEc);
+}
+#------------------------------------------------------------------------------
+# _subMulBlank (for Spreadsheet::ParseExcel) DK:P349
+#------------------------------------------------------------------------------
+sub _subMulBlank($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my ($iR, $iSc) = unpack("v2", $sWk);
+    my $iEc = unpack("v", substr($sWk, length($sWk)-2, 2));
+    my $iPos = 4;
+    for(my $iC=$iSc; $iC<=$iEc; $iC++) {
+        my $iF = unpack('v', substr($sWk, $iPos, 2));
+        _NewCell (
+                $oBook, $iR, $iC,
+                Kind    => 'MulBlank',
+                Val     => '',
+                FormatNo=> $iF,
+                Format  => $oBook->{Format}[$iF],
+                Numeric => 0,
+                Code    => undef,
+                Book    => $oBook,
+            );
+        $iPos+=2;
+    }
+#2.MaxRow, MaxCol, MinRow, MinCol
+    _SetDimension($oBook, $iR, $iSc, $iEc);
+}
+#------------------------------------------------------------------------------
+# _subLabelSST (for Spreadsheet::ParseExcel) DK: P345
+#------------------------------------------------------------------------------
+sub _subLabelSST($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my ($iR, $iC, $iF, $iIdx) = unpack('v3V', $sWk);
+
+    _NewCell (
+            $oBook, $iR, $iC,
+            Kind    => 'PackedIdx',
+            Val     => $oBook->{PkgStr}[$iIdx]->{Text},
+            FormatNo=> $iF,
+            Format  => $oBook->{Format}[$iF],
+            Numeric => 0,
+            Code    => ($oBook->{PkgStr}[$iIdx]->{Unicode})? 'ucs2': undef,
+            Book    => $oBook,
+            Rich   => $oBook->{PkgStr}[$iIdx]->{Rich},
+        );
+
+#2.MaxRow, MaxCol, MinRow, MinCol
+    _SetDimension($oBook, $iR, $iC, $iC);
+}
+#------------------------------------------------------------------------------
+# _subFlg1904 (for Spreadsheet::ParseExcel) DK:P296
+#------------------------------------------------------------------------------
+sub _subFlg1904($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    $oBook->{Flg1904} = unpack("v", $sWk);
+}
+#------------------------------------------------------------------------------
+# _subRow (for Spreadsheet::ParseExcel) DK:P403
+#------------------------------------------------------------------------------
+sub _subRow($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return undef unless(defined $oBook->{_CurSheet});
+
+#0. Get Worksheet info (MaxRow, MaxCol, MinRow, MinCol)
+    my($iR, $iSc, $iEc, $iHght, $undef1, $undef2, $iGr, $iXf) = unpack("v8", $sWk);
+    $iEc--;
+
+#1. RowHeight
+    if($iGr & 0x20) {   #Height = 0
+        $oBook->{Worksheet}[$oBook->{_CurSheet}]->{RowHeight}[$iR] = 0;
+    }
+    else {
+        $oBook->{Worksheet}[$oBook->{_CurSheet}]->{RowHeight}[$iR] = $iHght/20.0;
+    }
+
+#2.MaxRow, MaxCol, MinRow, MinCol
+    _SetDimension($oBook, $iR, $iSc, $iEc);
+}
+#------------------------------------------------------------------------------
+# _SetDimension (for Spreadsheet::ParseExcel)
+#------------------------------------------------------------------------------
+sub _SetDimension($$$$)
+{
+    my($oBook, $iR, $iSc, $iEc)=@_;
+    return undef unless(defined $oBook->{_CurSheet});
+
+#2.MaxRow, MaxCol, MinRow, MinCol
+#2.1 MinRow
+    $oBook->{Worksheet}[$oBook->{_CurSheet}]->{MinRow} = $iR 
+        unless (defined $oBook->{Worksheet}[$oBook->{_CurSheet}]->{MinRow}) and 
+               ($oBook->{Worksheet}[$oBook->{_CurSheet}]->{MinRow} <= $iR);
+
+#2.2 MaxRow
+    $oBook->{Worksheet}[$oBook->{_CurSheet}]->{MaxRow} = $iR 
+        unless (defined $oBook->{Worksheet}[$oBook->{_CurSheet}]->{MaxRow}) and
+               ($oBook->{Worksheet}[$oBook->{_CurSheet}]->{MaxRow} > $iR);
+#2.3 MinCol
+    $oBook->{Worksheet}[$oBook->{_CurSheet}]->{MinCol} = $iSc
+            unless (defined $oBook->{Worksheet}[$oBook->{_CurSheet}]->{MinCol}) and
+               ($oBook->{Worksheet}[$oBook->{_CurSheet}]->{MinCol} <= $iSc);
+#2.4 MaxCol
+    $oBook->{Worksheet}[$oBook->{_CurSheet}]->{MaxCol} = $iEc 
+            unless (defined $oBook->{Worksheet}[$oBook->{_CurSheet}]->{MaxCol}) and
+               ($oBook->{Worksheet}[$oBook->{_CurSheet}]->{MaxCol} > $iEc);
+
+}
+#------------------------------------------------------------------------------
+# _subDefaultRowHeight (for Spreadsheet::ParseExcel)    DK: P318
+#------------------------------------------------------------------------------
+sub _subDefaultRowHeight($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return undef unless(defined $oBook->{_CurSheet});
+#1. RowHeight
+    my($iDum, $iHght) = unpack("v2", $sWk);
+    $oBook->{Worksheet}[$oBook->{_CurSheet}]->{DefRowHeight} = $iHght/20;
+
+}
+#------------------------------------------------------------------------------
+# _subStandardWidth(for Spreadsheet::ParseExcel)    DK:P413
+#------------------------------------------------------------------------------
+sub _subStandardWidth($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my $iW = unpack("v", $sWk);
+    $oBook->{StandardWidth}= _adjustColWidth($oBook, $iW);
+}
+#------------------------------------------------------------------------------
+# _subDefColWidth(for Spreadsheet::ParseExcel)      DK:P319
+#------------------------------------------------------------------------------
+sub _subDefColWidth($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return undef unless(defined $oBook->{_CurSheet});
+    my $iW = unpack("v", $sWk);
+    $oBook->{Worksheet}[$oBook->{_CurSheet}]->{DefColWidth}= _adjustColWidth($oBook, $iW);
+}
+#------------------------------------------------------------------------------
+# _adjustColWidth (for Spreadsheet::ParseExcel)
+#------------------------------------------------------------------------------
+sub _adjustColWidth($$) {
+    my($oBook, $iW)=@_;
+    return (($iW -0xA0)/256);
+#    ($oBook->{Worksheet}[$oBook->{_CurSheet}]->{SheetVersion} == verExcel97)?
+#        (($iW -0xA0)/256) : $iW;
+}
+#------------------------------------------------------------------------------
+# _subColInfo (for Spreadsheet::ParseExcel) DK:P309
+#------------------------------------------------------------------------------
+sub _subColInfo($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return undef unless(defined $oBook->{_CurSheet});
+    my($iSc, $iEc, $iW, $iXF, $iGr) = unpack("v5", $sWk);
+    for(my $i= $iSc; $i<=$iEc; $i++) {
+        $oBook->{Worksheet}[$oBook->{_CurSheet}]->{ColWidth}[$i] = 
+                        ($iGr & 0x01)? 0: _adjustColWidth($oBook, $iW);
+                    #0x01 means HIDDEN
+        $oBook->{Worksheet}[$oBook->{_CurSheet}]->{ColFmtNo}[$i] = $iXF;
+        # $oBook->{Worksheet}[$oBook->{_CurSheet}]->{ColCr}[$i]    = $iGr; #Not Implemented
+    }
+}
+#------------------------------------------------------------------------------
+# _subSST (for Spreadsheet::ParseExcel) DK:P413
+#------------------------------------------------------------------------------
+sub _subSST($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    _subStrWk($oBook, substr($sWk, 8));
+}
+#------------------------------------------------------------------------------
+# _subContinue (for Spreadsheet::ParseExcel)    DK:P311
+#------------------------------------------------------------------------------
+sub _subContinue($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+=cmmt
+    if(defined $oThis->{FuncTbl}->{$bOp}) {
+        $oThis->{FuncTbl}->{$PREFUNC}->($oBook, $bOp, $bLen, $sWk);
+    }
+=cut
+    _subStrWk($oBook, $sWk, 1) if($PREFUNC == 0xFC);
+}
+#------------------------------------------------------------------------------
+# _subWriteAccess (for Spreadsheet::ParseExcel) DK:P451
+#------------------------------------------------------------------------------
+sub _subWriteAccess($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return if (defined $oBook->{_Author});
+
+    #BIFF8
+    if($oBook->{BIFFVersion} >= verBIFF8) {
+        $oBook->{Author} = _convBIFF8String($oBook, $sWk);
+    }
+    #Before BIFF8
+    else {
+        my($iLen) = unpack("c", $sWk);
+        $oBook->{Author} = $oBook->{FmtClass}->TextFmt(substr($sWk, 1, $iLen), '_native_');
+    }
+}
+#------------------------------------------------------------------------------
+# _convBIFF8String (for Spreadsheet::ParseExcel)
+#------------------------------------------------------------------------------
+sub _convBIFF8String($$;$){
+    my($oBook, $sWk, $iCnvFlg) = @_;
+    my($iLen, $iFlg) = unpack("vc", $sWk);
+    my($iHigh, $iExt, $iRich) = ($iFlg & 0x01, $iFlg & 0x04, $iFlg & 0x08);
+    my($iStPos, $iExtCnt, $iRichCnt, $sStr);
+#2. Rich and Ext
+    if($iRich && $iExt) {
+        $iStPos   = 9;
+        ($iRichCnt, $iExtCnt) = unpack('vV', substr($sWk, 3, 6));
+    }
+    elsif($iRich) { #Only Rich
+        $iStPos   = 5;
+        $iRichCnt = unpack('v', substr($sWk, 3, 2));
+        $iExtCnt  = 0;
+    }
+    elsif($iExt)  { #Only Ext
+        $iStPos   = 7;
+        $iRichCnt = 0;
+        $iExtCnt  = unpack('V', substr($sWk, 3, 4));
+    }
+    else {          #Nothing Special
+        $iStPos   = 3;
+        $iExtCnt  = 0;
+        $iRichCnt = 0;
+    }
+#3.Get String
+    if($iHigh) {    #Compressed
+        $iLen *= 2;
+        $sStr = substr($sWk,    $iStPos, $iLen);
+        _SwapForUnicode(\$sStr);
+        $sStr = $oBook->{FmtClass}->TextFmt($sStr, 'ucs2') unless($iCnvFlg);
+    }
+    else {              #Not Compressed
+        $sStr = substr($sWk, $iStPos, $iLen);
+        $sStr = $oBook->{FmtClass}->TextFmt($sStr, undef) unless($iCnvFlg);
+    }
+
+#4. return 
+    if(wantarray) {
+        #4.1 Get Rich and Ext
+        if(length($sWk) < $iStPos + $iLen+ $iRichCnt*4+$iExtCnt) {
+            return ([undef, $iHigh, undef, undef], 
+                $iStPos + $iLen+ $iRichCnt*4+$iExtCnt, $iStPos, $iLen);
+        }
+        else {
+            return ([$sStr, $iHigh,
+                    substr($sWk, $iStPos + $iLen, $iRichCnt*4),
+                    substr($sWk, $iStPos + $iLen+ $iRichCnt*4, $iExtCnt)], 
+                $iStPos + $iLen+ $iRichCnt*4+$iExtCnt,  $iStPos, $iLen);
+        }
+    }
+    else {
+        return $sStr;
+    }
+}
+#------------------------------------------------------------------------------
+# _subXF (for Spreadsheet::ParseExcel)     DK:P453
+#------------------------------------------------------------------------------
+sub _subXF($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+
+    my ($iFnt, $iIdx);
+    my($iLock, $iHidden, $iStyle, $i123, $iAlH, $iWrap, $iAlV, $iJustL, $iRotate,
+        $iInd, $iShrink, $iMerge, $iReadDir, $iBdrD,
+        $iBdrSL, $iBdrSR, $iBdrST, $iBdrSB, $iBdrSD,
+        $iBdrCL, $iBdrCR, $iBdrCT, $iBdrCB, $iBdrCD,
+        $iFillP, $iFillCF, $iFillCB);
+
+    if($oBook->{BIFFVersion} == verBIFF8) {
+        my ($iGen, $iAlign, $iGen2, $iBdr1,  $iBdr2, $iBdr3, $iPtn );
+
+        ($iFnt, $iIdx, $iGen, $iAlign, $iGen2, $iBdr1,  $iBdr2, $iBdr3, $iPtn )
+            = unpack("v7Vv", $sWk);
+        $iLock   = ($iGen & 0x01)? 1:0;
+        $iHidden = ($iGen & 0x02)? 1:0;
+        $iStyle  = ($iGen & 0x04)? 1:0;
+        $i123    = ($iGen & 0x08)? 1:0;
+        $iAlH    = ($iAlign & 0x07);
+        $iWrap   = ($iAlign & 0x08)? 1:0;
+        $iAlV    = ($iAlign & 0x70) / 0x10;
+        $iJustL  = ($iAlign & 0x80)? 1:0;
+
+        $iRotate  = (($iAlign & 0xFF00) / 0x100) & 0x00FF;
+        $iRotate = 90 if($iRotate == 255);
+        $iRotate = 90 - $iRotate if($iRotate > 90);
+
+        $iInd     = ($iGen2 & 0x0F);
+        $iShrink  = ($iGen2 & 0x10)? 1:0;
+        $iMerge   = ($iGen2 & 0x20)? 1:0;
+        $iReadDir = (($iGen2 & 0xC0) / 0x40) & 0x03;
+        $iBdrSL = $iBdr1 & 0x0F;
+        $iBdrSR = (($iBdr1 & 0xF0)   / 0x10)   & 0x0F;
+        $iBdrST = (($iBdr1 & 0xF00)  / 0x100)  & 0x0F;
+        $iBdrSB = (($iBdr1 & 0xF000) / 0x1000) & 0x0F;
+
+        $iBdrCL = (($iBdr2 & 0x7F)) & 0x7F;
+        $iBdrCR = (($iBdr2 & 0x3F80) / 0x80) & 0x7F;
+        $iBdrD  = (($iBdr2 & 0xC000) / 0x4000) & 0x3;
+
+        $iBdrCT = (($iBdr3 & 0x7F)) & 0x7F;
+        $iBdrCB = (($iBdr3 & 0x3F80) / 0x80) & 0x7F;
+        $iBdrCD = (($iBdr3 & 0x1FC000) / 0x4000) & 0x7F;
+        $iBdrSD = (($iBdr3 & 0x1E00000) / 0x200000) & 0xF;
+        $iFillP = (($iBdr3 & 0xFC000000) / 0x4000000) & 0x3F;
+
+        $iFillCF = ($iPtn & 0x7F);
+        $iFillCB = (($iPtn & 0x3F80) / 0x80) & 0x7F;
+    }
+    else {
+        my ($iGen, $iAlign, $iPtn,  $iPtn2, $iBdr1, $iBdr2);
+
+        ($iFnt, $iIdx, $iGen, $iAlign, $iPtn,  $iPtn2, $iBdr1, $iBdr2)
+            = unpack("v8", $sWk);
+        $iLock   = ($iGen & 0x01)? 1:0;
+        $iHidden = ($iGen & 0x02)? 1:0;
+        $iStyle  = ($iGen & 0x04)? 1:0;
+        $i123    = ($iGen & 0x08)? 1:0;
+
+        $iAlH    = ($iAlign & 0x07);
+        $iWrap  = ($iAlign & 0x08)? 1:0;
+        $iAlV    = ($iAlign & 0x70) / 0x10;
+        $iJustL  = ($iAlign & 0x80)? 1:0;
+
+        $iRotate  = (($iAlign & 0x300) / 0x100) & 0x3;
+
+        $iFillCF = ($iPtn & 0x7F);
+        $iFillCB = (($iPtn & 0x1F80) / 0x80) & 0x7F;
+
+        $iFillP = ($iPtn2 & 0x3F);
+        $iBdrSB  = (($iPtn2 & 0x1C0) /  0x40) & 0x7;
+        $iBdrCB = (($iPtn2 & 0xFE00) / 0x200) & 0x7F;
+
+        $iBdrST = ($iBdr1 & 0x07);
+        $iBdrSL = (($iBdr1 & 0x38)   / 0x8)   & 0x07;
+        $iBdrSR = (($iBdr1 & 0x1C0)  / 0x40)  & 0x07;
+        $iBdrCT = (($iBdr1 & 0xFE00) / 0x200)  & 0x7F;
+
+        $iBdrCL = ($iBdr2  & 0x7F)  & 0x7F;
+        $iBdrCR = (($iBdr2 & 0x3F80) / 0x80) & 0x7F;
+    }
+
+   push @{$oBook->{Format}} , 
+         Spreadsheet::ParseExcel::Format->new (
+            FontNo   => $iFnt,
+            Font     => $oBook->{Font}[$iFnt], 
+            FmtIdx   => $iIdx,
+
+            Lock     => $iLock,
+            Hidden   => $iHidden,
+            Style    => $iStyle,
+            Key123   => $i123,
+            AlignH   => $iAlH,
+            Wrap     => $iWrap,
+            AlignV   => $iAlV,
+            JustLast => $iJustL,
+            Rotate   => $iRotate,
+
+            Indent   => $iInd,
+            Shrink   => $iShrink,
+            Merge    => $iMerge,
+            ReadDir  => $iReadDir,
+
+            BdrStyle => [$iBdrSL, $iBdrSR, $iBdrST, $iBdrSB],
+            BdrColor => [$iBdrCL, $iBdrCR, $iBdrCT, $iBdrCB],
+            BdrDiag  => [$iBdrD, $iBdrSD, $iBdrCD],
+            Fill     => [$iFillP, $iFillCF, $iFillCB],
+        );
+}
+#------------------------------------------------------------------------------
+# _subFormat (for Spreadsheet::ParseExcel)  DK: P336
+#------------------------------------------------------------------------------
+sub _subFormat($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my $sFmt;
+    if (($oBook->{BIFFVersion} == verBIFF2) ||
+        ($oBook->{BIFFVersion} == verBIFF3) ||
+        ($oBook->{BIFFVersion} == verBIFF4) ||
+        ($oBook->{BIFFVersion} == verBIFF5) ) {
+        $sFmt = substr($sWk, 3, unpack('c', substr($sWk, 2, 1)));
+        $sFmt = $oBook->{FmtClass}->TextFmt($sFmt, '_native_');
+    }
+    else {
+        $sFmt = _convBIFF8String($oBook, substr($sWk, 2));
+    }
+    $oBook->{FormatStr}->{unpack('v', substr($sWk, 0, 2))} = $sFmt;
+}
+#------------------------------------------------------------------------------
+# _subPalette (for Spreadsheet::ParseExcel) DK: P393
+#------------------------------------------------------------------------------
+sub _subPalette($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    for(my $i=0;$i<unpack('v', $sWk);$i++) {
+#        push @aColor, unpack('H6', substr($sWk, $i*4+2));
+        $aColor[$i+8] = unpack('H6', substr($sWk, $i*4+2));
+    }
+}
+#------------------------------------------------------------------------------
+# _subFont (for Spreadsheet::ParseExcel) DK:P333
+#------------------------------------------------------------------------------
+sub _subFont($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my($iHeight, $iAttr, $iCIdx, $iBold, $iSuper, $iUnderline, $sFntName);
+    my($bBold, $bItalic, $bUnderline, $bStrikeout);
+
+    if($oBook->{BIFFVersion} == verBIFF8) {
+        ($iHeight, $iAttr, $iCIdx, $iBold, $iSuper, $iUnderline) = 
+            unpack("v5c", $sWk);
+        my($iSize, $iHigh) = unpack('cc', substr($sWk, 14, 2));
+        if($iHigh) {
+            $sFntName = substr($sWk, 16, $iSize*2);
+            _SwapForUnicode(\$sFntName);
+            $sFntName = $oBook->{FmtClass}->TextFmt($sFntName, 'ucs2');
+        }
+        else {
+            $sFntName = substr($sWk, 16, $iSize);
+            $sFntName = $oBook->{FmtClass}->TextFmt($sFntName, '_native_');
+        }
+        $bBold       = ($iBold >= 0x2BC)? 1: 0;
+        $bItalic     = ($iAttr & 0x02)? 1: 0;
+        $bStrikeout  = ($iAttr & 0x08)? 1: 0;
+        $bUnderline  = ($iUnderline)? 1: 0;
+    }
+    elsif($oBook->{BIFFVersion} == verBIFF5) {
+        ($iHeight, $iAttr, $iCIdx, $iBold, $iSuper, $iUnderline) = 
+            unpack("v5c", $sWk);
+        $sFntName = $oBook->{FmtClass}->TextFmt(
+                    substr($sWk, 15, unpack("c", substr($sWk, 14, 1))), 
+                    '_native_');
+        $bBold       = ($iBold >= 0x2BC)? 1: 0;
+        $bItalic     = ($iAttr & 0x02)? 1: 0;
+        $bStrikeout  = ($iAttr & 0x08)? 1: 0;
+        $bUnderline  = ($iUnderline)? 1: 0;
+    }
+    else {
+        ($iHeight, $iAttr) = unpack("v2", $sWk);
+        $iCIdx       = undef;
+        $iSuper      = 0;
+
+        $bBold       = ($iAttr & 0x01)? 1: 0;
+        $bItalic     = ($iAttr & 0x02)? 1: 0;
+        $bUnderline  = ($iAttr & 0x04)? 1: 0;
+        $bStrikeout  = ($iAttr & 0x08)? 1: 0;
+
+        $sFntName = substr($sWk, 5, unpack("c", substr($sWk, 4, 1)));
+    }
+    push @{$oBook->{Font}}, 
+        Spreadsheet::ParseExcel::Font->new(
+            Height          => $iHeight / 20.0,
+            Attr            => $iAttr,
+            Color           => $iCIdx,
+            Super           => $iSuper,
+            UnderlineStyle  => $iUnderline,
+            Name            => $sFntName,
+
+            Bold            => $bBold,
+            Italic          => $bItalic,
+            Underline       => $bUnderline,
+            Strikeout       => $bStrikeout,
+    );
+    #Skip Font[4]
+    push @{$oBook->{Font}}, {} if(scalar(@{$oBook->{Font}}) == 4);
+
+}
+#------------------------------------------------------------------------------
+# _subBoundSheet (for Spreadsheet::ParseExcel): DK: P307
+#------------------------------------------------------------------------------
+sub _subBoundSheet($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my($iPos, $iGr, $iKind) = unpack("Lc2", $sWk);
+    $iKind &= 0x0F;
+    return if(($iKind != 0x00) && ($iKind != 0x01));
+
+    if($oBook->{BIFFVersion} >= verBIFF8) {
+        my($iSize, $iUni) = unpack("cc", substr($sWk, 6, 2));
+        my $sWsName = substr($sWk, 8);
+        if($iUni & 0x01) {
+            _SwapForUnicode(\$sWsName);
+            $sWsName = $oBook->{FmtClass}->TextFmt($sWsName, 'ucs2');
+        }
+        $oBook->{Worksheet}[$oBook->{SheetCount}] = 
+            new Spreadsheet::ParseExcel::Worksheet(
+                    Name => $sWsName,
+                    Kind => $iKind,
+                    _Pos => $iPos,
+                    _Book => $oBook,
+                    _SheetNo => $oBook->{SheetCount},
+                );
+    }
+    else {
+        $oBook->{Worksheet}[$oBook->{SheetCount}] = 
+            new Spreadsheet::ParseExcel::Worksheet(
+                    Name => $oBook->{FmtClass}->TextFmt(substr($sWk, 7), '_native_'),
+                    Kind => $iKind,
+                    _Pos => $iPos,
+                    _Book => $oBook,
+                    _SheetNo => $oBook->{SheetCount},
+                );
+    }
+    $oBook->{SheetCount}++;
+}
+#------------------------------------------------------------------------------
+# _subHeader (for Spreadsheet::ParseExcel) DK: P340
+#------------------------------------------------------------------------------
+sub _subHeader($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return undef unless(defined $oBook->{_CurSheet});
+    my $sW;
+    #BIFF8
+    if($oBook->{BIFFVersion} >= verBIFF8) {
+    $sW = _convBIFF8String($oBook, $sWk);
+        $oBook->{Worksheet}[$oBook->{_CurSheet}]->{Header} = 
+        ($sW eq "\x00")? undef : $sW;
+    }
+    #Before BIFF8
+    else {
+        my($iLen) = unpack("c", $sWk);
+    $sW = $oBook->{FmtClass}->TextFmt(substr($sWk, 1, $iLen), '_native_');
+        $oBook->{Worksheet}[$oBook->{_CurSheet}]->{Header} =
+        ($sW eq "\x00\x00\x00")? undef : $sW;
+    }
+}
+#------------------------------------------------------------------------------
+# _subFooter (for Spreadsheet::ParseExcel) DK: P335
+#------------------------------------------------------------------------------
+sub _subFooter($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return undef unless(defined $oBook->{_CurSheet});
+    my $sW;
+    #BIFF8
+    if($oBook->{BIFFVersion} >= verBIFF8) {
+    $sW = _convBIFF8String($oBook, $sWk);
+        $oBook->{Worksheet}[$oBook->{_CurSheet}]->{Footer} = 
+        ($sW eq "\x00")? undef : $sW;
+    }
+    #Before BIFF8
+    else {
+        my($iLen) = unpack("c", $sWk);
+    $sW = $oBook->{FmtClass}->TextFmt(substr($sWk, 1, $iLen), '_native_');
+        $oBook->{Worksheet}[$oBook->{_CurSheet}]->{Footer} = 
+        ($sW eq "\x00\x00\x00")? undef : $sW;
+    }
+}
+#------------------------------------------------------------------------------
+# _subHPageBreak (for Spreadsheet::ParseExcel) DK: P341
+#------------------------------------------------------------------------------
+sub _subHPageBreak($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my @aBreak;
+    my $iCnt = unpack("v", $sWk);
+
+    return undef unless(defined $oBook->{_CurSheet});
+    #BIFF8
+    if($oBook->{BIFFVersion} >= verBIFF8) {
+        for(my $i=0;$i<$iCnt;$i++) {
+            my($iRow, $iColB, $iColE) = 
+                    unpack('v3', substr($sWk, 2 + $i*6, 6));
+#            push @aBreak, [$iRow, $iColB, $iColE];
+            push @aBreak, $iRow;
+        }
+    }
+    #Before BIFF8
+    else {
+        for(my $i=0;$i<$iCnt;$i++) {
+            my($iRow) = 
+                    unpack('v', substr($sWk, 2 + $i*2, 2));
+            push @aBreak, $iRow;
+#            push @aBreak, [$iRow, 0, 255];
+        }
+    }
+    @aBreak = sort {$a <=> $b} @aBreak;
+    $oBook->{Worksheet}[$oBook->{_CurSheet}]->{HPageBreak} = \@aBreak;
+}
+#------------------------------------------------------------------------------
+# _subVPageBreak (for Spreadsheet::ParseExcel) DK: P447
+#------------------------------------------------------------------------------
+sub _subVPageBreak($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return undef unless(defined $oBook->{_CurSheet});
+
+    my @aBreak;
+    my $iCnt = unpack("v", $sWk);
+    #BIFF8
+    if($oBook->{BIFFVersion} >= verBIFF8) {
+        for(my $i=0;$i<$iCnt;$i++) {
+            my($iCol, $iRowB, $iRowE) = 
+                    unpack('v3', substr($sWk, 2 + $i*6, 6));
+            push @aBreak, $iCol;
+#            push @aBreak, [$iCol, $iRowB, $iRowE];
+        }
+    }
+    #Before BIFF8
+    else {
+        for(my $i=0;$i<$iCnt;$i++) {
+            my($iCol) = 
+                    unpack('v', substr($sWk, 2 + $i*2, 2));
+            push @aBreak, $iCol;
+#            push @aBreak, [$iCol, 0, 65535];
+        }
+    }
+    @aBreak = sort {$a <=> $b} @aBreak;
+    $oBook->{Worksheet}[$oBook->{_CurSheet}]->{VPageBreak} = \@aBreak;
+}
+#------------------------------------------------------------------------------
+# _subMergin (for Spreadsheet::ParseExcel) DK: P306, 345, 400, 440
+#------------------------------------------------------------------------------
+sub _subMergin($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return undef unless(defined $oBook->{_CurSheet});
+
+    my $dWk = _convDval(substr($sWk, 0, 8)) * 127 / 50;
+    if($bOp == 0x26) {
+        $oBook->{Worksheet}[$oBook->{_CurSheet}]->{LeftMergin} = $dWk;
+    }
+    elsif($bOp == 0x27) {
+        $oBook->{Worksheet}[$oBook->{_CurSheet}]->{RightMergin} = $dWk;
+    }
+    elsif($bOp == 0x28) {
+        $oBook->{Worksheet}[$oBook->{_CurSheet}]->{TopMergin} = $dWk;
+    }
+    elsif($bOp == 0x29) {
+        $oBook->{Worksheet}[$oBook->{_CurSheet}]->{BottomMergin} = $dWk;
+    }
+}
+#------------------------------------------------------------------------------
+# _subHcenter (for Spreadsheet::ParseExcel) DK: P340
+#------------------------------------------------------------------------------
+sub _subHcenter($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return undef unless(defined $oBook->{_CurSheet});
+
+    my $iWk = unpack("v", $sWk);
+    $oBook->{Worksheet}[$oBook->{_CurSheet}]->{HCenter} = $iWk;
+
+}
+#------------------------------------------------------------------------------
+# _subVcenter (for Spreadsheet::ParseExcel) DK: P447
+#------------------------------------------------------------------------------
+sub _subVcenter($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return undef unless(defined $oBook->{_CurSheet});
+
+    my $iWk = unpack("v", $sWk);
+    $oBook->{Worksheet}[$oBook->{_CurSheet}]->{VCenter} = $iWk;
+}
+#------------------------------------------------------------------------------
+# _subPrintGridlines (for Spreadsheet::ParseExcel) DK: P397
+#------------------------------------------------------------------------------
+sub _subPrintGridlines($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return undef unless(defined $oBook->{_CurSheet});
+
+    my $iWk = unpack("v", $sWk);
+    $oBook->{Worksheet}[$oBook->{_CurSheet}]->{PrintGrid} = $iWk;
+
+}
+#------------------------------------------------------------------------------
+# _subPrintHeaders (for Spreadsheet::ParseExcel) DK: P397
+#------------------------------------------------------------------------------
+sub _subPrintHeaders($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return undef unless(defined $oBook->{_CurSheet});
+
+    my $iWk = unpack("v", $sWk);
+    $oBook->{Worksheet}[$oBook->{_CurSheet}]->{PrintHeaders} = $iWk;
+}
+#------------------------------------------------------------------------------
+# _subSETUP (for Spreadsheet::ParseExcel) DK: P409
+#------------------------------------------------------------------------------
+sub _subSETUP($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return undef unless(defined $oBook->{_CurSheet});
+
+    my $oWkS = $oBook->{Worksheet}[$oBook->{_CurSheet}];
+    my $iGrBit;
+
+    ($oWkS->{PaperSize},
+     $oWkS->{Scale}    ,
+     $oWkS->{PageStart},
+     $oWkS->{FitWidth} ,
+     $oWkS->{FitHeight},
+     $iGrBit,
+     $oWkS->{Res},
+     $oWkS->{VRes},) = unpack('v8', $sWk);
+
+    $oWkS->{HeaderMergin} = _convDval(substr($sWk, 16, 8)) * 127 / 50;
+    $oWkS->{FooterMergin} = _convDval(substr($sWk, 24, 8)) * 127 / 50;
+    $oWkS->{Copis}= unpack('v2', substr($sWk, 32, 2));
+    $oWkS->{LeftToRight}= (($iGrBit & 0x01)? 1: 0);
+    $oWkS->{Landscape}  = (($iGrBit & 0x02)? 1: 0);
+    $oWkS->{NoPls}      = (($iGrBit & 0x04)? 1: 0);
+    $oWkS->{NoColor}    = (($iGrBit & 0x08)? 1: 0);
+    $oWkS->{Draft}      = (($iGrBit & 0x10)? 1: 0);
+    $oWkS->{Notes}      = (($iGrBit & 0x20)? 1: 0);
+    $oWkS->{NoOrient}   = (($iGrBit & 0x40)? 1: 0);
+    $oWkS->{UsePage}    = (($iGrBit & 0x80)? 1: 0);
+}
+#------------------------------------------------------------------------------
+# _subName (for Spreadsheet::ParseExcel) DK: P350
+#------------------------------------------------------------------------------
+sub _subName($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    my($iGrBit, 
+        $cKey, $cCh, 
+        $iCce, $ixAls, $iTab,
+        $cchCust, $cchDsc, $cchHep, $cchStatus) = unpack('vc2v3c4', $sWk);
+#Builtin Name + Length == 1
+    if(($iGrBit & 0x20) && ($cCh == 1)) {
+        #BIFF8
+        if($oBook->{BIFFVersion} >= verBIFF8) {
+            my $iName  = unpack('n', substr($sWk, 14 ));
+            my $iSheet = unpack('v', substr($sWk, 8 )) - 1;
+            if($iName == 6) {       #PrintArea
+                my($iSheetW, $raArea) = _ParseNameArea(substr($sWk, 16));
+                $oBook->{PrintArea}[$iSheet] =  $raArea;
+            }
+            elsif($iName == 7) {    #Title
+                my($iSheetW, $raArea) = _ParseNameArea(substr($sWk, 16));
+                my @aTtlR = ();
+                my @aTtlC = ();
+                foreach my $raI (@$raArea) {
+                    if($raI->[3] == 0xFF) { #Row Title
+                        push @aTtlR, [$raI->[0], $raI->[2] ];
+                    }
+                    else {                  #Col Title
+                        push @aTtlC, [$raI->[1], $raI->[3] ];
+                    }
+                }
+                $oBook->{PrintTitle}[$iSheet] =  {Row => \@aTtlR, Column => \@aTtlC};
+            }
+        }
+        else {
+            my $iName = unpack('c', substr($sWk, 14 ));
+            if($iName == 6) {       #PrintArea
+                my($iSheet, $raArea) = _ParseNameArea95(substr($sWk, 15));
+                $oBook->{PrintArea}[$iSheet] =  $raArea;
+            }
+            elsif($iName == 7) {    #Title
+                my($iSheet, $raArea) = _ParseNameArea95(substr($sWk, 15));
+                my @aTtlR = ();
+                my @aTtlC = ();
+                foreach my $raI (@$raArea) {
+                    if($raI->[3] == 0xFF) { #Row Title
+                        push @aTtlR, [$raI->[0], $raI->[2] ];
+                    }
+                    else {                  #Col Title
+                        push @aTtlC, [$raI->[1], $raI->[3] ];
+                    }
+                }
+                $oBook->{PrintTitle}[$iSheet] =  {Row => \@aTtlR, Column => \@aTtlC};
+            }
+        }
+    }
+}
+#------------------------------------------------------------------------------
+# ParseNameArea (for Spreadsheet::ParseExcel) DK: 494 (ptgAread3d)
+#------------------------------------------------------------------------------
+sub _ParseNameArea($) {
+    my ($sObj) =@_;
+    my ($iOp);
+    my @aRes = ();
+    $iOp = unpack('C', $sObj);
+    my $iSheet;
+    if($iOp == 0x3b) {
+        my($iWkS, $iRs, $iRe, $iCs, $iCe) = 
+            unpack('v5', substr($sObj, 1));
+        $iSheet = $iWkS;
+        push @aRes, [$iRs, $iCs, $iRe, $iCe];
+    }
+    elsif($iOp == 0x29) {
+        my $iLen = unpack('v', substr($sObj, 1, 2));
+        my $iSt = 0;
+        while($iSt < $iLen) {
+            my($iOpW, $iWkS, $iRs, $iRe, $iCs, $iCe) = 
+                unpack('cv5', substr($sObj, $iSt+3, 11));
+
+            if($iOpW == 0x3b) {
+                $iSheet = $iWkS;
+                push @aRes, [$iRs, $iCs, $iRe, $iCe];
+            }
+
+            if($iSt==0) {
+                $iSt += 11;
+            }
+            else {
+                $iSt += 12; #Skip 1 byte;
+            }
+        }
+    }
+    return ($iSheet, \@aRes);
+}
+#------------------------------------------------------------------------------
+# ParseNameArea95 (for Spreadsheet::ParseExcel) DK: 494 (ptgAread3d)
+#------------------------------------------------------------------------------
+sub _ParseNameArea95($) {
+    my ($sObj) =@_;
+    my ($iOp);
+    my @aRes = ();
+    $iOp = unpack('C', $sObj);
+    my $iSheet;
+    if($iOp == 0x3b) {
+        $iSheet = unpack('v', substr($sObj, 11, 2));
+        my($iRs, $iRe, $iCs, $iCe) = 
+                unpack('v2C2', substr($sObj, 15, 6));
+        push @aRes, [$iRs, $iCs, $iRe, $iCe];
+    }
+    elsif($iOp == 0x29) {
+        my $iLen = unpack('v', substr($sObj, 1, 2));
+        my $iSt = 0;
+        while($iSt < $iLen) {
+            my $iOpW = unpack('c', substr($sObj, $iSt+3, 6));
+            $iSheet = unpack('v', substr($sObj, $iSt+14, 2));
+            my($iRs, $iRe, $iCs, $iCe) = 
+                unpack('v2C2', substr($sObj, $iSt+18, 6));
+            push @aRes, [$iRs, $iCs, $iRe, $iCe] if($iOpW == 0x3b);
+
+            if($iSt==0) {
+                $iSt += 21;
+            }
+            else {
+                $iSt += 22; #Skip 1 byte;
+            }
+        }
+    }
+    return ($iSheet, \@aRes);
+}
+#------------------------------------------------------------------------------
+# _subBOOL (for Spreadsheet::ParseExcel) DK: P452
+#------------------------------------------------------------------------------
+sub _subWSBOOL($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return undef unless(defined $oBook->{_CurSheet});
+
+    $oBook->{Worksheet}[$oBook->{_CurSheet}]->{PageFit} = 
+                                ((unpack('v', $sWk) & 0x100)? 1: 0);
+}
+#------------------------------------------------------------------------------
+# _subMergeArea (for Spreadsheet::ParseExcel) DK: (Not)
+#------------------------------------------------------------------------------
+sub _subMergeArea($$$$)
+{
+    my($oBook, $bOp, $bLen, $sWk) = @_;
+    return undef unless(defined $oBook->{_CurSheet});
+
+    my $iCnt = unpack("v", $sWk);
+    my $oWkS = $oBook->{Worksheet}[$oBook->{_CurSheet}];
+    $oWkS->{MergedArea} = [] unless(defined $oWkS->{MergedArea});
+    for(my $i=0; $i < $iCnt; $i++) {
+        my($iRs, $iRe, $iCs, $iCe) = unpack('v4', substr($sWk, $i*8 + 2, 8));
+        for(my $iR=$iRs;$iR<=$iRe;$iR++) {
+            for(my $iC=$iCs;$iC<=$iCe;$iC++) {
+                $oWkS->{Cells}[$iR][$iC] ->{Merged} = 1 
+                        if(defined $oWkS->{Cells}[$iR][$iC] );
+            }
+        }
+        push @{$oWkS->{MergedArea}}, [$iRs, $iCs, $iRe, $iCe];
+    }
+}
+#------------------------------------------------------------------------------
+# DecodeBoolErr (for Spreadsheet::ParseExcel) DK: P306
+#------------------------------------------------------------------------------
+sub DecodeBoolErr($$)
+{
+    my($iVal, $iFlg) = @_;
+    if($iFlg) {     # ERROR
+        if($iVal == 0x00) {
+            return "#NULL!";
+        }
+        elsif($iVal == 0x07) {
+            return "#DIV/0!";
+        }
+        elsif($iVal == 0x0F) {
+            return "#VALUE!";
+        }
+        elsif($iVal == 0x17) {
+            return "#REF!";
+        }
+        elsif($iVal == 0x1D) {
+            return "#NAME?";
+        }
+        elsif($iVal == 0x24) {
+            return "#NUM!";
+        }
+        elsif($iVal == 0x2A) {
+            return "#N/A!";
+        }
+        else {
+            return "#ERR";
+        }
+    }
+    else {
+        return ($iVal)? "TRUE" : "FALSE";
+    }
+}
+#------------------------------------------------------------------------------
+# _UnpackRKRec (for Spreadsheet::ParseExcel)    DK:P 401
+#------------------------------------------------------------------------------
+sub _UnpackRKRec($) {
+    my($sArg) = @_;
+
+    my $iF  = unpack('v', substr($sArg, 0, 2));
+
+    my $lWk = substr($sArg, 2, 4);
+    my $sWk = pack("c4", reverse(unpack("c4", $lWk)));
+    my $iPtn = unpack("c",substr($sWk, 3, 1)) & 0x03;
+    if($iPtn == 0) {
+        return ($iF, unpack("d", ($BIGENDIAN)? $sWk . "\0\0\0\0": "\0\0\0\0". $lWk));
+    }
+    elsif($iPtn == 1) {
+        substr($sWk, 3, 1) &=  pack('c', unpack("c",substr($sWk, 3, 1)) & 0xFC);
+        substr($lWk, 0, 1) &=  pack('c', unpack("c",substr($lWk, 0, 1)) & 0xFC);
+        return ($iF, unpack("d", ($BIGENDIAN)? $sWk . "\0\0\0\0": "\0\0\0\0". $lWk)/ 100);
+    }
+    elsif($iPtn == 2) {
+    my $sUB = unpack("B32", $sWk);
+        my $sWkLB = pack("B32", (substr($sUB, 0, 1) x 2) .
+                                substr($sUB, 0, 30));
+        my $sWkL  = ($BIGENDIAN)? $sWkLB: pack("c4", reverse(unpack("c4", $sWkLB)));
+        return ($iF, unpack("i", $sWkL));
+    }
+    else {
+    my $sUB = unpack("B32", $sWk);
+        my $sWkLB = pack("B32", (substr($sUB, 0, 1) x 2) .
+                                substr($sUB, 0, 30));
+        my $sWkL  = ($BIGENDIAN)? $sWkLB: pack("c4", reverse(unpack("c4", $sWkLB)));
+        return ($iF, unpack("i", $sWkL) / 100);
+    }
+}
+#------------------------------------------------------------------------------
+# _subStrWk (for Spreadsheet::ParseExcel)     DK:P280 ..
+#------------------------------------------------------------------------------
+sub _subStrWk($$;$)
+{
+    my($oBook, $sWk, $fCnt) = @_;
+
+    #1. Continue
+    if(defined($fCnt)) {
+    #1.1 Before No Data No
+        if($oBook->{StrBuff} eq '') { #
+#print "CONT NO DATA\n";
+#print "DATA:", unpack('H30', $oBook->{StrBuff}), " PRE:$oBook->{_PrevCond}\n";
+            $oBook->{StrBuff} .= $sWk;
+        }
+        #1.1 No PrevCond 
+        elsif(!(defined($oBook->{_PrevCond}))) {
+#print "NO PREVCOND\n";
+                $oBook->{StrBuff} .= substr($sWk, 1);
+        }
+        else {
+#print "CONT\n";
+            my $iCnt1st = ord($sWk); # 1st byte of Continue may be a GR byte
+            my($iStP, $iLenS) = @{$oBook->{_PrevInfo}};
+            my $iLenB = length($oBook->{StrBuff});
+
+        #1.1 Not in String
+            if($iLenB >= ($iStP + $iLenS)) {
+#print "NOT STR\n";
+                $oBook->{StrBuff} .= $sWk;
+#                $oBook->{StrBuff} .= substr($sWk, 1);
+            }
+        #1.2 Same code (Unicode or ASCII)
+            elsif(($oBook->{_PrevCond} & 0x01) == ($iCnt1st & 0x01)) {
+#print "SAME\n";
+                $oBook->{StrBuff} .= substr($sWk, 1);
+            }
+            else {
+        #1.3 Diff code (Unicode or ASCII)
+                my $iDiff = ($iStP + $iLenS) - $iLenB;
+                if($iCnt1st & 0x01) {
+#print "DIFF ASC $iStP $iLenS $iLenB DIFF:$iDiff\n";
+#print "BEF:", unpack("H6", $oBook->{StrBuff}), "\n";
+                  my ($iDum, $iGr) =unpack('vc', $oBook->{StrBuff});
+                  substr($oBook->{StrBuff}, 2, 1) = pack('c', $iGr | 0x01);
+#print "AFT:", unpack("H6", $oBook->{StrBuff}), "\n";
+                    for(my $i = ($iLenB-$iStP); $i >=1; $i--) {
+                        substr($oBook->{StrBuff}, $iStP+$i, 0) =  "\x00"; 
+                    }
+                }
+                else {
+#print "DIFF UNI:", $oBook->{_PrevCond}, ":", $iCnt1st, " DIFF:$iDiff\n";
+                    for(my $i = ($iDiff/2); $i>=1;$i--) {
+                        substr($sWk, $i+1, 0) =  "\x00";
+                    }
+                }
+                $oBook->{StrBuff} .= substr($sWk, 1);
+           }
+        }
+    }
+    else {
+    #2. Saisho
+        $oBook->{StrBuff} .= $sWk;
+    }
+#print " AFT2:", unpack("H60", $oBook->{StrBuff}), "\n";
+
+    $oBook->{_PrevCond} = undef;
+    $oBook->{_PrevInfo} = undef;
+
+    while(length($oBook->{StrBuff}) >= 4) {
+        my ( $raBuff, $iLen, $iStPos, $iLenS) = _convBIFF8String($oBook, $oBook->{StrBuff}, 1);
+                                                    #No Code Convert
+        if(defined($raBuff->[0])) {
+            push @{$oBook->{PkgStr}}, 
+                {
+                    Text    => $raBuff->[0],
+                    Unicode => $raBuff->[1],
+                    Rich    => $raBuff->[2],
+                    Ext     => $raBuff->[3],
+            };
+            $oBook->{StrBuff} = substr($oBook->{StrBuff}, $iLen);
+        }
+        else {
+            $oBook->{_PrevCond} = $raBuff->[1];
+            $oBook->{_PrevInfo} = [$iStPos, $iLenS];
+            last;
+        }
+    }
+}
+#------------------------------------------------------------------------------
+# _SwapForUnicode (for Spreadsheet::ParseExcel)
+#------------------------------------------------------------------------------
+sub _SwapForUnicode(\$) 
+{
+    my($sObj) = @_;
+#    for(my $i = 0; $i<length($$sObj); $i+=2){
+    for(my $i = 0; $i<(int (length($$sObj) / 2) * 2); $i+=2) {
+            my $sIt = substr($$sObj, $i, 1);
+            substr($$sObj, $i, 1) = substr($$sObj, $i+1, 1);
+            substr($$sObj, $i+1, 1) = $sIt;
+    }
+}
+#------------------------------------------------------------------------------
+# _NewCell (for Spreadsheet::ParseExcel)
+#------------------------------------------------------------------------------
+sub _NewCell($$$%) 
+{
+    my($oBook, $iR, $iC, %rhKey)=@_;
+    my($sWk, $iLen);
+    return undef unless(defined $oBook->{_CurSheet});
+
+    my $oCell = 
+        Spreadsheet::ParseExcel::Cell->new(
+            Val     => $rhKey{Val},
+            FormatNo=> $rhKey{FormatNo},
+            Format  => $rhKey{Format},
+            Code    => $rhKey{Code},
+            Type    => $oBook->{FmtClass}->ChkType(
+                            $rhKey{Numeric}, 
+                            $rhKey{Format}->{FmtIdx}),
+        );
+    $oCell->{_Kind}  = $rhKey{Kind};
+    $oCell->{_Value} = $oBook->{FmtClass}->ValFmt($oCell, $oBook);
+    if($rhKey{Rich}) {
+        my @aRich = ();
+        my $sRich = $rhKey{Rich};
+        for(my $iWk=0;$iWk<length($sRich); $iWk+=4) {
+            my($iPos, $iFnt) = unpack('v2', substr($sRich, $iWk));
+            push @aRich, [$iPos, $oBook->{Font}[$iFnt]];
+        }
+        $oCell->{Rich}   =  \@aRich;
+    }
+
+    if(defined $_CellHandler) {
+        if(defined $_Object){
+            no strict;
+            ref($_CellHandler) eq "CODE" ? 
+                    $_CellHandler->($_Object, $oBook, $oBook->{_CurSheet}, $iR, $iC, $oCell) :
+                    $_CellHandler->callback($_Object, $oBook, $oBook->{_CurSheet}, $iR, $iC, $oCell);
+        }
+        else{
+            $_CellHandler->($oBook, $oBook->{_CurSheet}, $iR, $iC, $oCell);
+        }
+    }
+    unless($_NotSetCell) {
+        $oBook->{Worksheet}[$oBook->{_CurSheet}]->{Cells}[$iR][$iC] 
+            = $oCell;
+    }
+    return $oCell;
+}
+#------------------------------------------------------------------------------
+# ColorIdxToRGB (for Spreadsheet::ParseExcel)
+#------------------------------------------------------------------------------
+sub ColorIdxToRGB($$){
+    my($sPkg, $iIdx) = @_;
+    return ((defined $aColor[$iIdx])? $aColor[$iIdx] : $aColor[0]);
+}
+1;
+__END__
+
+=head1 NAME
+
+Spreadsheet::ParseExcel - Get information from Excel file
+
+=head1 SYNOPSIS
+
+    use strict;
+    use Spreadsheet::ParseExcel;
+    my $oExcel = new Spreadsheet::ParseExcel;
+
+    #1.1 Normal Excel97
+    my $oBook = $oExcel->Parse('Excel/Test97.xls');
+    my($iR, $iC, $oWkS, $oWkC);
+    print "FILE  :", $oBook->{File} , "\n";
+    print "COUNT :", $oBook->{SheetCount} , "\n";
+    print "AUTHOR:", $oBook->{Author} , "\n";
+    for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
+        $oWkS = $oBook->{Worksheet}[$iSheet];
+        print "--------- SHEET:", $oWkS->{Name}, "\n";
+        for(my $iR = $oWkS->{MinRow} ; 
+                defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
+            for(my $iC = $oWkS->{MinCol} ;
+                            defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
+                $oWkC = $oWkS->{Cells}[$iR][$iC];
+                print "( $iR , $iC ) =>", $oWkC->Value, "\n" if($oWkC);  # Formatted Value
+                print "( $iR , $iC ) =>", $oWkC->{Val}, "\n" if($oWkC);  # Original Value
+            }
+        }
+    }
+
+I<new interface>
+
+    use strict;
+    use Spreadsheet::ParseExcel;
+    my $oBook = 
+        Spreadsheet::ParseExcel::Workbook->Parse('Excel/Test97.xls');
+    my($iR, $iC, $oWkS, $oWkC);
+    foreach my $oWkS (@{$oBook->{Worksheet}}) {
+        print "--------- SHEET:", $oWkS->{Name}, "\n";
+        for(my $iR = $oWkS->{MinRow} ; 
+                defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
+            for(my $iC = $oWkS->{MinCol} ;
+                            defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
+                $oWkC = $oWkS->{Cells}[$iR][$iC];
+                print "( $iR , $iC ) =>", $oWkC->Value, "\n" if($oWkC);
+            }
+        }
+    }
+
+=head1 DESCRIPTION
+
+Spreadsheet::ParseExcel makes you to get information from Excel95, Excel97, Excel2000 file.
+
+=head2 Functions
+
+=over 4
+
+=item new
+
+I<$oExcel> = new Spreadsheet::ParseExcel(
+                    [ I<CellHandler> => \&subCellHandler, 
+                      I<NotSetCell> => undef | 1,
+                    ]);
+
+Constructor.
+
+
+=over 4
+
+=item CellHandler I<(experimental)>
+
+specify callback function when a cell is detected.
+
+I<subCellHandler> gets arguments like below:
+
+sub subCellHandler (I<$oBook>, I<$iSheet>, I<$iRow>, I<$iCol>, I<$oCell>);
+
+B<CAUTION> : The atributes of Workbook may not be complete.
+This function will be called almost order by rows and columns.
+Take care B<almost>, I<not perfectly>.
+
+=item NotSetCell I<(experimental)>
+
+specify set or not cell values to Workbook object.
+
+=back
+
+=item Parse
+
+I<$oWorkbook> = $oParse->Parse(I<$sFileName> [, I<$oFmt>]);
+
+return L<"Workbook"> object.
+if error occurs, returns undef.
+
+=over 4
+
+=item I<$sFileName>
+
+name of the file to parse
+
+From 0.12 (with OLE::Storage_Lite v.0.06), 
+scalar reference of file contents (ex. \$sBuff) or 
+IO::Handle object (inclucdng IO::File etc.) are also available.
+
+=item I<$oFmt>
+
+L<"Formatter Class"> to format the value of cells.
+
+=back
+
+=item ColorIdxToRGB
+
+I<$sRGB> = $oParse->ColorIdxToRGB(I<$iColorIdx>);
+
+I<ColorIdxToRGB> returns RGB string corresponding to specified color index.
+RGB string has 6 charcters, representing RGB hex value. (ex. red = 'FF0000')
+
+=back
+
+=head2 Workbook
+
+I<Spreadsheet::ParseExcel::Workbook>
+
+Workbook class has these methods :
+
+=over 4
+
+=item Parse
+
+(class method) : same as Spreadsheet::ParseExcel
+
+=back
+
+=over 4
+
+=item Worksheet
+
+I<$oWorksheet> = $oBook->Worksheet(I<$sName>);
+
+I<Worksheet> returns a Worksheet object with I<$sName> or undef.
+If there is no worksheet with I<$sName> and I<$sName> contains only digits,
+it returns a Worksheet object at that position.
+
+=back
+
+Workbook class has these properties :
+
+=over 4
+
+=item File
+
+Name of the file
+
+=item Author
+
+Author of the file
+
+=item Flag1904
+
+If this flag is on, date of the file count from 1904.
+
+=item Version
+
+Version of the file
+
+=item SheetCount
+
+Numbers of L<"Worksheet"> s in that Workbook
+
+=item Worksheet[SheetNo]
+
+Array of L<"Worksheet">s class
+
+=item PrintArea[SheetNo]
+
+Array of PrintArea array refs.
+
+Each PrintArea is : [ I<StartRow>, I<StartColumn>, I<EndRow>, I<EndColumn>]
+
+=item PrintTitle[SheetNo]
+
+Array of PrintTitle hash refs.
+
+Each PrintTitle is : 
+        { Row => [I<StartRow>, I<EndRow>], 
+          Column => [I<StartColumn>, I<EndColumn>]}
+
+=back
+
+=head2 Worksheet
+
+I<Spreadsheet::ParseExcel::Worksheet>
+
+Worksheet class has these methods:
+
+=over 4
+
+=item Cell ( ROW, COL )
+
+Return the Cell iobject at row ROW and column COL if
+it is defined. Otherwise return undef.
+
+=item RowRange ()
+
+Return a two-element list (MIN, MAX) containing the
+minimum and maximum of defined rows in the worksheet
+If there is no row defined MAX is smaller than MIN.
+
+=item ColRange ()
+
+Return a two-element list (MIN, MAX) containing the
+minimum and maximum of defined columns in the worksheet
+If there is no row defined MAX is smaller than MIN.
+
+=back
+
+Worksheet class has these properties:
+
+=over 4
+
+=item Name
+
+Name of that Worksheet
+
+=item DefRowHeight
+
+Default height of rows
+
+=item DefColWidth
+
+Default width of columns
+
+=item RowHeight[Row]
+
+Array of row height
+
+=item ColWidth[Col]
+
+Array of column width (undef means DefColWidth)
+
+=item Cells[Row][Col]
+
+Array of L<"Cell">s infomation in the worksheet
+
+=item Landscape
+
+Print in horizontal(0) or vertical (1).
+
+=item Scale
+
+Print scale.
+
+=item FitWidth
+
+Number of pages with fit in width. 
+
+=item FitHeight
+
+Number of pages with fit in height.
+
+=item PageFit
+
+Print with fit (or not).
+
+=item PaperSize
+
+Papar size. The value is like below:
+
+  Letter               1, LetterSmall          2, Tabloid              3 ,
+  Ledger               4, Legal                5, Statement            6 ,
+  Executive            7, A3                   8, A4                   9 ,
+  A4Small             10, A5                  11, B4                  12 ,
+  B5                  13, Folio               14, Quarto              15 ,
+  10x14               16, 11x17               17, Note                18 ,
+  Envelope9           19, Envelope10          20, Envelope11          21 ,
+  Envelope12          22, Envelope14          23, Csheet              24 ,
+  Dsheet              25, Esheet              26, EnvelopeDL          27 ,
+  EnvelopeC5          28, EnvelopeC3          29, EnvelopeC4          30 ,
+  EnvelopeC6          31, EnvelopeC65         32, EnvelopeB4          33 ,
+  EnvelopeB5          34, EnvelopeB6          35, EnvelopeItaly       36 ,
+  EnvelopeMonarch     37, EnvelopePersonal    38, FanfoldUS           39 ,
+  FanfoldStdGerman    40, FanfoldLegalGerman  41, User                256
+
+=item PageStart
+
+Start page number.
+
+=item UsePage
+
+Use own start page number (or not).
+
+=item LeftMergin, RightMergin, TopMergin, BottomMergin, HeaderMergin, FooterMergin
+
+Mergins for left, right, top, bottom, header and footer.
+
+=item HCenter
+
+Print in horizontal center (or not)
+
+=item VCenter
+
+Print in vertical center  (or not)
+
+=item Header
+
+Content of print header.
+Please refer Excel Help.
+
+=item Footer
+
+Content of print footer.
+Please refer Excel Help.
+
+=item PrintGrid
+
+Print with Gridlines (or not)
+
+=item PrintHeaders
+
+Print with headings (or not)
+
+=item NoColor
+
+Print in black-white (or not).
+
+=item Draft
+
+Print in draft mode (or not).
+
+=item Notes
+
+Print with notes (or not).
+
+=item LeftToRight
+
+Print left to right(0) or top to down(1).
+
+=item HPageBreak
+
+Array ref of horizontal page breaks.
+
+=item VPageBreak
+
+Array ref of vertical page breaks.
+
+=item MergedArea
+
+Array ref of merged areas.
+Each merged area is : [ I<StartRow>, I<StartColumn>, I<EndRow>, I<EndColumn>]
+
+=back
+
+=head2 Cell
+
+I<Spreadsheet::ParseExcel::Cell>
+
+Cell class has these properties:
+
+=over 4
+
+=item Value
+
+I<Method>
+Formatted value of that cell
+
+=item Val
+
+Original Value of that cell
+
+=item Type
+
+Kind of that cell ('Text', 'Numeric', 'Date')
+
+=item Code
+
+Character code of that cell (undef, 'ucs2', '_native_')
+undef tells that cell seems to be ascii.
+'_native_' tells that cell seems to be 'sjis' or something like that.
+
+=item Format
+
+L<"Format"> for that cell.
+
+=item Merged
+
+That cells is merged (or not).
+
+=item Rich
+
+Array ref of font informations about each characters.
+
+Each entry has : [ I<Start Position>, I<Font Object>]
+
+For more information please refer sample/dmpExR.pl
+
+=back
+
+=head2 Format
+
+I<Spreadsheet::ParseExcel::Format>
+
+Format class has these properties:
+
+=over 4
+
+=item Font
+
+L<"Font"> object for that Format.
+
+=item AlignH
+
+Horizontal Alignment.
+
+  0: (standard), 1: left,       2: center,     3: right,      
+  4: fill ,      5: justify,    7:equal_space  
+
+B<Notice:> 6 may be I<merge> but it seems not to work.
+
+=item AlignV
+
+Vertical Alignment.
+
+    0: top,  1: vcenter, 2: bottom, 3: vjustify, 4: vequal_space
+
+=item Indent
+
+Number of indent
+
+=item Wrap
+
+Wrap (or not).
+
+=item Shrink
+
+Display in shrinking (or not)
+
+=item Rotate
+
+In Excel97, 2000      : degrees of string rotation.
+In Excel95 or earlier : 0: No rotation, 1: Top down, 2: 90 degrees anti-clockwise, 
+                        3: 90 clockwise
+
+=item JustLast
+
+JustLast (or not).
+I<I have never seen this attribute.>
+
+=item ReadDir
+
+Direction for read.
+
+=item BdrStyle
+
+Array ref of boder styles : [I<Left>, I<Right>, I<Top>, I<Bottom>]
+
+=item BdrColor
+
+Array ref of boder color indexes : [I<Left>, I<Right>, I<Top>, I<Bottom>]
+
+=item BdrDiag
+
+Array ref of diag boder kind, style and color index : [I<Kind>, I<Style>, I<Color>]
+  Kind : 0: None, 1: Right-Down, 2:Right-Up, 3:Both
+
+=item Fill
+
+Array ref of fill pattern and color indexes : [I<Pattern>, I<Front Color>, I<Back Color>]
+
+=item Lock
+
+Locked (or not).
+
+=item Hidden
+
+Hiddedn (or not).
+
+=item Style
+
+Style format (or Cell format)
+
+=back
+
+=head2 Font
+
+I<Spreadsheet::ParseExcel::Font>
+
+Format class has these properties:
+
+=over 4
+
+=item Name
+
+Name of that font.
+
+=item Bold
+
+Bold (or not).
+
+=item Italic
+
+Italic (or not).
+
+=item Height
+
+Size (height) of that font.
+
+=item Underline
+
+Underline (or not).
+
+=item UnderlineStyle
+
+0: None, 1: Single, 2: Double, 0x21: Single(Account), 0x22: Double(Account)
+
+=item Color
+
+Color index for that font.
+
+=item Strikeout
+
+Strikeout (or not).
+
+=item Super
+
+0: None, 1: Upper, 2: Lower
+
+=back
+
+=head1 Formatter class
+
+I<Spreadsheet::ParseExcel::Fmt*>
+
+Formatter class will convert cell data.
+
+Spreadsheet::ParseExcel includes 2 formatter classes: FmtDefault and FmtJapanese. 
+You can create your own FmtClass as you like.
+
+Formatter class(Spreadsheet::ParseExcel::Fmt*) should provide these functions:
+
+=over 4
+
+=item ChkType($oSelf, $iNumeric, $iFmtIdx)
+
+tells type of the cell that has specified value.
+
+=over 8
+
+=item $oSelf
+
+Formatter itself
+
+=item $iNumeric
+
+If on, the value seems to be number
+
+=item $iFmtIdx
+
+Format index number of that cell
+
+=back
+
+=item TextFmt($oSelf, $sText, $sCode)
+
+converts original text into applicatable for Value.
+
+=over 8
+
+=item $oSelf
+
+Formatter itself
+
+=item $sText
+
+Original text
+
+=item $sCode
+
+Character code of Original text
+
+=back
+
+=item ValFmt($oSelf, $oCell, $oBook) 
+
+converts original value into applicatable for Value.
+
+=over 8
+
+=item $oSelf
+
+Formatter itself
+
+=item $oCell
+
+Cell object
+
+=item $oBook
+
+Workbook object
+
+=back
+
+=item FmtString($oSelf, $oCell, $oBook)
+
+get format string for the I<$oCell>.
+
+=over 8
+
+=item $oSelf
+
+Formatter itself
+
+=item $oCell
+
+Cell object
+
+=item $oBook
+
+WorkBook object contains that cell
+
+=back
+
+=back
+
+=head1 KNOWN PROBLEM
+
+This module can not get the values of fomulas in 
+Excel files made with Spreadsheet::WriteExcel.
+Normaly (ie. By Excel application), formula has the result with it.
+But Spreadsheet::WriteExcel writes formula with no result.
+If you set your Excel application "Auto Calculation" off.
+(maybe [Tool]-[Option]-[Calculation] or something)
+You will see the same result.
+
+=head1 AUTHOR
+
+Kawai Takanori (Hippo2000) kwitknr at cpan.org
+
+    http://member.nifty.ne.jp/hippo2000/            (Japanese)
+    http://member.nifty.ne.jp/hippo2000/index_e.htm (English)
+
+=head1 SEE ALSO
+
+XLHTML, OLE::Storage, Spreadsheet::WriteExcel, OLE::Storage_Lite
+
+This module is based on herbert within OLE::Storage and XLHTML.
+
+=head1 TODO
+
+- Spreadsheet::ParseExcel : 
+ Password protected data, Formulas support, HyperLink support, 
+ Named Range support
+
+- Spreadsheet::ParseExcel::SaveParser :
+ Catch up Spreadsheet::WriteExce feature, Create new Excel fle
+
+=head1 COPYRIGHT
+
+Copyright (c) 2000-2004 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.
+
+=head1 ACKNOWLEDGEMENTS
+
+First of all, I would like to acknowledge valuable program and modules :
+XHTML, OLE::Storage and Spreadsheet::WriteExcel.
+
+In no particular order: Yamaji Haruna, Simamoto Takesi, Noguchi Harumi, 
+Ikezawa Kazuhiro, Suwazono Shugo, Hirofumi Morisada, Michael Edwards, Kim Namusk 
+and many many people + Kawai Mikako.
+
+=cut

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/README
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/README	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/README	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,63 @@
+
+NAME
+    Spreadsheet::ParseExcel - Get information from Excel file
+
+DESCRIPTION
+    This module allows you to get information from Excel file.
+
+    This module can handle files of Excel95, 97 and 2000.
+    (and now supports Excel4)
+
+    The module will work on the majority of Windows, UNIX and
+    Macintosh platforms. 
+
+REQUIREMENT
+    This module requires these modules:
+        OLE::Storage_Lite
+        Jcode.pm    (if you are using FmtJapan, or FmtJapan2)
+        Unicode::Map    (if you are using FmtJapan2 or FmtUnicode)
+
+INSTALLATION
+    The module can be installed using the standard Perl procedure:
+
+        perl Makefile.PL
+        make
+        make test
+        make install    # You may need to be root
+        make clean      # or make realclean
+
+    Windows users without a working "make" can get nmake from:
+        ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe
+
+For FmtJapan2
+  If you use FmtJapan2, you must do following actions:
+
+  (1) Copy "CP932Excel.map" included with this distribution to an 
+      applicatable directry.
+
+  (2) To add "CP932Excel" as map name, append following lines to 
+      REGISTRY in the Unicode::Map hierarchy 
+      (changing map directy to applicatable directry):
+
+name:    CP932Excel
+srcURL:  $SrcUnicode/VENDORS/MICSFT/WINDOWS/CP932.TXT
+src:     $DestUnicode/VENDORS/MICSFT/WINDOWS/CP932.TXT
+map:     (which you copied directry)/CP932Excel.map
+# Don't remove this line
+
+
+VERSION
+    This document refers to version 0.2602 of Spreadsheet::ParseExcel,
+    released Jul 15, 2002.
+
+AUTHOR
+    Kawai Takanori (kwitknr at cpan.org)
+
+SUPPORT
+    Of course, I'll welcome e-mails.
+    And now, I have a Wiki-clone. If you have a question or suggestion, 
+    please let me know with Wiki.
+
+  KbWiki
+    http://www.hippo2000.info/cgi-bin/KbWikiE/KbWiki.pl (English)
+    http://www.hippo2000.info/cgi-bin/KbWiki/KbWiki.pl  (Japanese)

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/README_Japan.htm
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/README_Japan.htm	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/README_Japan.htm	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,156 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Type"
+content="text/html; charset=x-euc-jp">
+<title></title>
+</head>
+
+<body bgcolor="#00FFFF">
+
+<pre>Speadsheet::ParseExcel.pm - 0.2405
+
+                                                by Àî¹ç¹§Åµ (Hippo2000)
+
+¹¹¿·ÍúÎò¤ÏChanges¤ò¤´Í÷¤¯¤À¤µ¤¤
+
+³µÍ×
+  ¤³¤Î¥â¥¸¥å¡¼¥ë¤Ï¡¢¤Þ¤À¦Á¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹¡£
+
+  Microsoft¼Ò¤ÎExcel¥Õ¥¡¥¤¥ë¤òWindows°Ê³°¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤â¾ðÊó¤ò¼è¤ê
+  ½Ð¤¹¤è¤¦¤Ë¤¹¤ë¥â¥¸¥å¡¼¥ë¤Ç¤¹¡£
+
+Æ°ºî³Îǧ
+  DOS/V     WindowsNT ver.4.0    Perl5.005
+  DOS/V     TurboLinux ver.6.0   Perl5.005
+  Sun Sparc Solaris 2.6          Perl5.005
+  DOS/V     Vine Linux 2.0       Perl5.005
+  Macintosh JPerl¡¢FreeBSD¤Ç¤âÆ°¤¤¤Æ¤¤¤ë¤È¤¤¤¦¥ì¥Ý¡¼¥È¤ò¤¤¤¿¤À¤¤¤Æ¤¤¤Þ¤¹
+
+  ¤½¤Î¾¤Î´Ä¶­¤Ç¼Â¹Ô¤µ¤ì¤¿Êý¤Ï¡¢¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£
+  Æ°¤¤¤Æ¤âÆ°¤«¤Ê¤¯¤Æ¤â¡¢¤´¶¨ÎϤè¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ &lt;(__)&gt;
+
+´Êñ¤Ê³Îǧ(test¥Ç¥£¥ì¥¯¥È¥ê¡Ë
+  sample¥Ç¥£¥ì¥¯¥È¥ê¤Ë°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬Æþ¤Ã¤Æ¤¤¤Þ¤¹¡§
+
+  sample.pl   ¡§´Êñ¤Ê¥Æ¥¹¥È¥¹¥¯¥ê¥×¥È¡ÊSpreadsheet::ParseExcel::FmtDefault¤ò»ÈÍÑ¡Ë
+  sample_j.pl ¡§´Êñ¤Ê¥Æ¥¹¥È¥¹¥¯¥ê¥×¥È¡ÊSpreadsheet::ParseExcel::FmtJapan¤ò»ÈÍÑ¡¢¥³¡¼¥É¤ò»ØÄꤷ¤Æ½ÐÎÏ¡Ë
+  res_sample  ¡§sample.pl¤Î¼Â¹Ô·ë²Ì
+  res_sample_j¡§sample_j.pl¤Î¼Â¹Ô·ë²Ì(euc)
+
+  dmpEx.pl  : Excel¥Õ¥¡¥¤¥ë¤ÎÆâÍƤòɽ¼¨¤¹¤ë¡ÊSpreadsheet::ParseExcel::FmtDefault¤ò»ÈÍÑ¡Ë
+  dmpExj.pl : Excel¥Õ¥¡¥¤¥ë¤ÎÆâÍƤòɽ¼¨¤¹¤ë¡ÊSpreadsheet::ParseExcel::FmtJapan¤ò»ÈÍÑ¡Ë
+
+  ´Êñ¤Ë¤³¤Î¥â¥¸¥å¡¼¥ë¤ÎÆ°¤­¤ò³Îǧ¤·¤¿¤¤¤À¤±¤Ç¤¢¤ì¤Ð¡¢dmpExj.pl¤Ë¤è¤Ã¤Æ
+  »ØÄꤷ¤¿Excel¥Õ¥¡¥¤¥ë¤ÎÆâÍƤòɽ¼¨¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
+
+  ex.
+    # perl -I.. dmpExj.pl Excel/Test97.xls euc 
+
+    ¡Ö-I..¡×¤Ï¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ëSpreadsheet::ParseExcel.pm¤òÍøÍѤ¹¤ë¤¿¤á¤Ë»ØÄꤷ¤Þ¤¹¡£
+    ¡ÖExcel/Test97.xls¡×¤ÏÂоݤȤʤë¥Õ¥¡¥¤¥ë̾¡£
+    ¡Öeuc¡×¤Ï´Á»ú¤ò½ÐÎϤ¹¤ë¤È¤­¤Îʸ»ú¥³¡¼¥É¤Ç¤¹¡£euc¡¢sjis¡¢jis¤Ê¤É
+    Jcode.pm¤ÈƱ¤¸¤Ç¤¹¡£
+
+¥¤¥ó¥¹¥È¡¼¥ë
+  OLE::Storage_Lite¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
+¡¡Spreadsheet::ParseExcel::FmtJapan¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢Jcode.pm¤òɬÍפȤ·¤Þ¤¹¡£¡Ê¾¤Î¥â¥¸¥å¡¼¥ë¤òɬÍפȤ·¤Þ¤»¤ó¡£¡Ë
+¡¡Spreadsheet::ParseExcel::FmtJapan2¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢Jcode.pm¡¢Unicode::Map¤òɬÍפȤ·¤Þ¤¹¡£
+¡¡Perl¤Îɸ½àŪ¤Ê¥¤¥ó¥¹¥È¡¼¥ë¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¤³¤Î¥â¥¸¥å¡¼¥ë¼«ÂΤÏPerl¤Î¤ß¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¥³¥Ô¡¼¤¹¤ë¤À¤±¤Ç¤âÆ°¤­¤Þ¤¹¡£</pre>
+
+<pre>  perl Makefile.PL
+  make
+  make test
+  make install (root¤Ë¤Ê¤Ã¤Æ¡Ë
+</pre>
+
+<pre>FmtJapan2¤Î¤¿¤á¤Ë</pre>
+
+<pre> µ¡¼ï°Í¸ʸ»ú¤ËÂбþ¤¹¤ë¤¿¤á¤ÎFmtJapan2¤ò0.09¤«¤éƱº­¤·¤Þ¤¹¡£
+ ÍøÍѤ¹¤ë¤¿¤á¤Ë¤ÏUnicode::Map¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Û¤«¡¢°Ê²¼¤Î¼ê½ç¤¬É¬Íפˤʤê¤Þ¤¹¡§</pre>
+
+<pre>  (1) Ʊº­¤µ¤ì¤ë&quot;CP932Excel.map&quot;¤òŬÀڤʥǥ£¥ì¥¯¥È¥ê¤Ë¥³¥Ô¡¼¤·¤Þ¤¹¡£</pre>
+
+<pre>  (2) &quot;CP932Excel&quot;¤ò¥Þ¥Ã¥×̾¤È¤·¤ÆÄɲ乤뤿¤á¤Ë¡¢Unicode::Map³¬Áؤˤ¢¤ëREGISTRY¤Ë°Ê²¼¤Î¹Ô¤òÄɲä·¤Þ¤¹¡£
+      ¡Êmap¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤ÏŬÀڤʥǥ£¥ì¥¯¥È¥ê̾¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡Ë</pre>
+
+<pre>name:    CP932Excel
+srcURL:  $SrcUnicode/VENDORS/MICSFT/WINDOWS/CP932.TXT
+src:     $DestUnicode/VENDORS/MICSFT/WINDOWS/CP932.TXT
+map:     (¥³¥Ô¡¼Àè¤Î¥Ç¥£¥ì¥¯¥È¥ê)/CP932Excel.map
+# Don't remove this line</pre>
+
+<pre>»È¤¤Êý
+  use strict;
+  use Spreadsheet::ParseExcel;
+  my $oExcel = new Spreadsheet::ParseExcel;
+  my $oBook = $oExcel-&gt;Parse('Excel/Test97.xls');
+  
+  #¤Þ¤¿¤ÏÆüËܸìÂбþ¤Ç¤Ï
+  use strict;
+  use Spreadsheet::ParseExcel;
+  use Spreadsheet::ParseExcel::FmtJapan;
+  my $oExcel = new Spreadsheet::ParseExcel;
+  my $oFmtJ = Spreadsheet::ParseExcel::FmtJapan-&gt;new(Code =&gt; 'euc'); #sjis¡¢jis¤Ê¤É¤Î¥³¡¼¥É
+  my $oBook = $oExcel-&gt;Parse('Excel/Test97.xls', $oFmtJ);
+</pre>
+
+<pre>  #¾ðÊó¤Î¼è¤ê½Ð¤·Îã
+  my($iR, $iC, $oWkS, $oWkC);
+  
+  print &quot;FILE  :&quot;, $oBook-&gt;{File} , &quot;\n&quot;;
+  print &quot;COUNT :&quot;, $oBook-&gt;{SheetCount} , &quot;\n&quot;;
+  print &quot;AUTHOR:&quot;, $oBook-&gt;{Author} , &quot;\n&quot;;
+  for(my $iSheet=0; $iSheet &lt; $oBook-&gt;{SheetCount} ; $iSheet++) {
+    $oWkS = $oBook-&gt;{Worksheet}[$iSheet];
+    print &quot;--------- SHEET:&quot;, $oWkS-&gt;{Name}, &quot;\n&quot;;
+    for(my $iR = $oWkS-&gt;{MinRow} ; 
+            defined $oWkS-&gt;{MaxRow} &amp;&amp; $iR &lt;= $oWkS-&gt;{MaxRow} ; $iR++) {
+        for(my $iC = $oWkS-&gt;{MinCol} ;
+               defined $oWkS-&gt;{MaxCol} &amp;&amp; $iC &lt;= $oWkS-&gt;{MaxCol} ; $iC++) {
+            $oWkC = $oWkS-&gt;{Cells}[$iR][$iC];
+            print &quot;( $iR , $iC ) =&gt;&quot;, $oWkC-&gt;Value, &quot;\n&quot; if($oWkC);
+        }
+    }
+  }
+
+ÌäÂêÅÀ¡¦¥Ð¥°</pre>
+
+<pre>ºÇÂç¤ÎÌäÂêÅÀ¤Ç¤¢¤Ã¤¿¡ÖExce97 ¥Ç¥Ù¥í¥Ã¥Ñ¡¼¥º ¥­¥Ã¥È¡×¤¬¼ê¤ËÆþ¤ê¤Þ¤·¤¿¡£
+  ¤¿¤À¤¿¤ÀHirofumi Morisada¤µ¤ó¤Ë´¶¼Õ¡¢´¶¼Õ¤Ç¤¹¡£
+</pre>
+
+<pre>  Excel97/2000¤ÇÊݸ¤·¤¿¾ì¹ç¡¢FmtJapan¤Ç¤Ïµ¡¼ï°Í¸ʸ»ú¡Ê(³ô)¤ä¥í¡¼¥Þ¿ô»ú¤ÎI¤Ê¤É¡Ë¤¬¢®¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
+  FmtJapan2¤Ç¤Ï°ì±þÂбþ¤·¤Æ¤¤¤ë¤Ä¤â¤ê¤Ç¤¹¡£</pre>
+
+<pre>  ¤Þ¤À¥Æ¥¹¥È¤â¤Á¤ã¤ó¤È¤Ç¤­¤Æ¤¤¤Þ¤»¤ó¡£¤È¤ê¤¢¤¨¤º¤ÏÆ°¤¯¤Ç¤·¤ç¤¦¡£ &lt;(__)&gt;
+  TurboLinux Version 6¤ÇºîÀ®¤·¤Æ¤¤¤ë¤Î¤Ç¡¢Â¾¤Î´Ä¶­¤Ç¤É¤¦¤Ê¤ë¤Î¤«¤È¤Æ¤âµ¤¤Ë
+  ¤Ê¤ê¤Þ¤¹¡£
+  Solaris¤Ç¤ÏÆ°ºî³Îǧ¤ò¤·¤Æ¤â¤é¤¤¤Þ¤·¤¿¡£¡Ê¤Þ¤ÀÉÔ¶ñ¹ç¤¬¤¢¤ê¤½¤¦¤Ç¤¹¤¬¡Ë
+
+  ¥³¥á¥ó¥È¡¢¥Ð¥°¥ì¥Ý¡¼¥È¤ò¤ªÂÔ¤Á¤·¤Æ¤¤¤Þ¤¹ Àî¹ç¹§Åµ¡§kwitknr at cpn.org
+
+¤ä¤é¤Ê¤­¤ã¤¤¤±¤Ê¤¤¤³¤È¡§
+  ¥Æ¥¹¥È¡ª
+  ¥É¥­¥å¥á¥ó¥È¤ÎÀ°È÷
+  ½ÐÎϤؤÎÂбþ (^_^) Spreadsheet::WriteExcel¤ò»È¤Ã¤Æ¤¤¤¿¤À¤¯¤Î¤¬°ìÈÖ
+
+  ¤À¤ì¤«¤Þ¤ë¤´¤È°ú¤­¤Ä¤¤¤Æ¤¯¤ì¤ë¿Í¤Ï¤¤¤Þ¤»¤ó¤«¡©(^^)
+
+¼Õ¼­¡§
+  ¤³¤ó¤ÊȾü¤Ê¾õÂ֤Ǽռ­¤â¤¢¤Ã¤¿¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢°Ê²¼¤Î¥×¥í¥°¥é¥à¡¢
+  ¥â¥¸¥å¡¼¥ë¤ò»²¹Í¤Ë¤µ¤»¤Æ¤¤¤¿¤À¤­¤Þ¤·¤¿¡£
+
+    xlHtml
+    OLE::Storage
+        herbert (OLE::Storage¤ËƱº­¤µ¤ì¤ë¥Ä¡¼¥ë¡Ë
+    Spreadsheet::WriteExcel
+
+   Solaris¤Î¥Ç¥Ð¥Ã¥°¤ÏÅçËÜÉð»á¤È»³Ï©½ÕÆव¤ó¤¬¤¤¤Ê¤±¤ì¤Ð¡¢À®Î©¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£(cloudy¤Ë´¶¼Õ¡Ë
+¡¡ Ǹ¸ýÀ²Èþ¤µ¤ó¤Ë¤ÏExcel2000¤Î¥Õ¥¡¥¤¥ë¤ò¤¤¤¿¤À¤­¤Þ¤·¤¿¡£
+   Hirofumi Morisada¤µ¤ó¤«¤é¤Î¾ðÊó¤Çʸ»úÎó¤Î¥Ð¥°¤òȯ¸«¡¢½¤Àµ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤·¤¿¡£
+   ¤½¤·¤Æ¡ÖExcel97¥Ç¥Ù¥í¥Ã¥Ñ¡¼¥º¥­¥Ã¥È¡×¤ò¤É¤¦¤â¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£
+
+  ¤½¤Î¾¡¢¤¿¤¯¤µ¤ó¤ÎÊý¤«¤é¤ÎÆ°ºîÊó¹ð¤ä¥Ð¥°¥ì¥Ý¡¼¥È¤ò¤¤¤¿¤À¤­´¶¼Õ¡¢´¶¼Õ¤Ç¤¹¡£</pre>
+</body>
+</html>

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/AuthorK.xls
===================================================================
(Binary files differ)


Property changes on: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/AuthorK.xls
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/AuthorK95.xls
===================================================================
(Binary files differ)


Property changes on: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/AuthorK95.xls
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/FmtTest.xls
===================================================================
(Binary files differ)


Property changes on: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/FmtTest.xls
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Rich.xls
===================================================================
(Binary files differ)


Property changes on: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Rich.xls
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test1904.xls
===================================================================
(Binary files differ)


Property changes on: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test1904.xls
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test1904_95.xls
===================================================================
(Binary files differ)


Property changes on: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test1904_95.xls
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test95.xls
===================================================================
(Binary files differ)


Property changes on: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test95.xls
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test95J.xls
===================================================================
(Binary files differ)


Property changes on: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test95J.xls
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test97.xls
===================================================================
(Binary files differ)


Property changes on: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test97.xls
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test97J.xls
===================================================================
(Binary files differ)


Property changes on: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/Test97J.xls
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/oem.xls
===================================================================
(Binary files differ)


Property changes on: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Excel/oem.xls
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Ilya.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Ilya.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/Ilya.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,24 @@
+use strict;
+use Spreadsheet::ParseExcel;
+package IlyaPackage; #:-)
+sub new($){
+    my $self = shift;
+    my $obj = {};
+    bless $obj, $self;
+}
+sub cb_routine($@) {
+    my($self, $oBook, $iSheet, $iRow, $iCol, $oCell) = @_;
+    print "( $iRow , $iCol ) =>", $oCell->Value, "\n";
+}
+sub parse($$){
+    my($self, $sFile) = @_;
+    my $oEx = 
+        Spreadsheet::ParseExcel->new(
+            CellHandler => \&cb_routine, 
+            Object => $self,
+            NotSetCell => 1);
+    $oEx->Parse($sFile);
+}
+1;
+my $oIlya =IlyaPackage->new;
+$oIlya->parse($ARGV[0]);

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/README
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/README	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/README	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,36 @@
+chkFmt.pl   : Sample Script for formatting
+res_fmt     : result of chkFmt.pl
+
+chkInfo.pl   : Sample Script for get information about format
+res_info     : result of chkInfo.pl with Excel/FmtTest.xls
+
+sample.pl   :Simple Script (using SpreadSheet::ParseExcel::FmtDefault)
+sample_j.pl :Simple Script using Japanese character
+        (using SpreadSheet::ParseExcel::FmtJapan)
+res_sample  :result of sample.pl
+res_sample_j:result of sample_j.pl (in euc)
+
+dmpEx.pl    : print out content of Excel file
+        (using SpreadSheet::ParseExcel::FmtDefault)
+dmpExJ.pl   : print out content of Excel file
+        (using SpreadSheet::ParseExcel::FmtJapan)
+dmpExU.pl   : print out content of Excel file
+        (using SpreadSheet::ParseExcel::FmtUnicode)
+
+dmpExH.pl   : print out content of Excel file
+        (using SpreadSheet::ParseExcel::FmtDefault + event handler)
+
+sampleOEM.pl: Displys difference between FmtJapan and FmtJapan2
+res_oem     : result of samplOEM.pl
+
+dmpExR.pl   : Sample Script for get information about each characters.
+res_rich    : result of dmpExR.pl with Excel/Rich.xls
+
+Ilya.pl     : Sample script for Object Oriented callback
+
+smpFile.pl  : Sample scripr for parsing perl variable
+
+xls2csv.pl  : Sample script for xls2csv
+
+iftest.pl   : Sample script for new interface
+iftestj.pl  : Sample script for new interface with FmtJapan

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/chkFmt.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/chkFmt.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/chkFmt.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,52 @@
+use strict;
+use Spreadsheet::ParseExcel::Utility;
+my $sWk;
+my @aData = (-2, 0, 1234, -1234, 34323.23232, -233232.3233, 
+        Spreadsheet::ParseExcel::Utility::LocaltimeExcel(13, 11, 12, 23, 2, 64, undef, 238));
+my %hFmtTest = (
+    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',
+    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',
+#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 => '@',
+);
+foreach my $sKey (sort {$a <=> $b} keys(%hFmtTest)) {
+    my $sVal = $hFmtTest{$sKey};
+    printf "============ %02x \n", $sKey;
+    foreach my $sDt (@aData) {
+        $sWk = Spreadsheet::ParseExcel::Utility::ExcelFmt($sVal, $sDt);
+        printf "Fmt: %-20s : %-10s: Data: %s\n", $sVal, "$sDt", $sWk;
+    }
+}

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

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpEx.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpEx.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpEx.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,30 @@
+use strict;
+if(!(defined $ARGV[0])) {
+    print<<EOF;
+Usage: $0 Excel_File
+EOF
+    exit;
+}
+use Spreadsheet::ParseExcel;
+my $oExcel = new Spreadsheet::ParseExcel;
+my $oBook = $oExcel->Parse($ARGV[0]);
+
+my($iR, $iC, $oWkS, $oWkC);
+print "=========================================\n";
+print "FILE  :", $oBook->{File} , "\n";
+print "COUNT :", $oBook->{SheetCount} , "\n";
+print "AUTHOR:", $oBook->{Author} , "\n";
+#for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
+#    $oWkS = $oBook->{Worksheet}[$iSheet];
+foreach my $oWkS (@{$oBook->{Worksheet}}) {
+    print "--------- SHEET:", $oWkS->{Name}, "\n";
+    for(my $iR = $oWkS->{MinRow} ; 
+            defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
+        for(my $iC = $oWkS->{MinCol} ;
+                        defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
+            $oWkC = $oWkS->{Cells}[$iR][$iC];
+            print "( $iR , $iC ) =>", $oWkC->Value, "\n" if($oWkC);
+print $oWkC->{_Kind}, "\n";
+        }
+    }
+}

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExH.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExH.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExH.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,29 @@
+use strict;
+use Spreadsheet::ParseExcel;
+if(!(defined $ARGV[0])) {
+    print<<EOF;
+Usage: $0 Excel_File
+EOF
+    exit;
+}
+my $iPreSheet=-1;
+sub subCellHandler($$$$$) {
+    my ($oBook, $iSheet, $iRow, $iCol, $oCell) = @_;
+    if($iPreSheet<0) {
+        print "=========================================\n";
+        print "FILE  :", $oBook->{File} , "\n";
+        print "COUNT :", $oBook->{SheetCount} , "\n";
+        print "AUTHOR:", $oBook->{Author} , "\n";
+    }
+    if($iPreSheet != $iSheet) {
+        print "--------- SHEET:", 
+            $oBook->{Worksheet}[$iSheet]->{Name}, "\n" ;
+        $iPreSheet = $iSheet;
+    }
+    print "( $iRow , $iCol ) =>", $oCell->Value, "\n";
+#    $oBook->ParseAbort('Exceed Data') if($iRow >= 1);
+}
+my $oExcel = new Spreadsheet::ParseExcel
+        ( CellHandler => \&subCellHandler, NotSetCell => 1);
+my $oBook = $oExcel->Parse($ARGV[0]);
+print "ABORTED:", $oBook->{_ParseAbort} if($oBook->{_ParseAbort});

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExHJ.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExHJ.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExHJ.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,36 @@
+use strict;
+use Spreadsheet::ParseExcel;
+use Spreadsheet::ParseExcel::FmtJapan2;
+if(!(defined $ARGV[0])) {
+    print<<EOF;
+Usage: $0 Excel_File
+EOF
+    exit;
+}
+my $iPreSheet=-1;
+sub subCellHandler($$$$$) {
+    my ($oBook, $iSheet, $iRow, $iCol, $oCell) = @_;
+    if($iPreSheet<0) {
+        print "=========================================\n";
+        print "FILE  :", $oBook->{File} , "\n";
+        print "COUNT :", $oBook->{SheetCount} , "\n";
+        print "AUTHOR:", $oBook->{Author} , "\n";
+    }
+    if($iPreSheet != $iSheet) {
+        print "--------- SHEET:", 
+            $oBook->{Worksheet}[$iSheet]->{Name}, "\n" ;
+        $iPreSheet = $iSheet;
+    }
+    print "( $iRow , $iCol ) =>", $oCell->Value, "\n";
+#    $oBook->ParseAbort('Exceed Data') if($iRow >= 1);
+}
+my $oExcel = new Spreadsheet::ParseExcel
+        ( CellHandler => \&subCellHandler, NotSetCell => 1);
+my $oFmtJ = Spreadsheet::ParseExcel::FmtJapan2->new(Code => $ARGV[1]);
+my $oBook = $oExcel->Parse($ARGV[0], $oFmtJ);
+for(my $i=0;$i<$oBook->{SheetCount};$i++) {
+    print "LAST:\n";
+    print "Row:", $oBook->{Worksheet}[$i]->{MaxRow}, "\n";  
+    print "Col:", $oBook->{Worksheet}[$i]->{MaxCol}, "\n";  
+}
+print "ABORTED:", $oBook->{_ParseAbort} if($oBook->{_ParseAbort});

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExJ.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExJ.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExJ.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,33 @@
+use strict;
+if(!(defined $ARGV[0])) {
+    print<<EOF;
+Usage: $0 Excel_File [Code]
+  Code: euc, sjis, jis, ... (same as Jcode.pm)
+EOF
+    exit;
+}
+use Spreadsheet::ParseExcel;
+use Spreadsheet::ParseExcel::FmtJapan;
+my $oExcel = new Spreadsheet::ParseExcel;
+my $oFmtJ = Spreadsheet::ParseExcel::FmtJapan->new(Code => $ARGV[1]);
+my $oBook = $oExcel->Parse($ARGV[0], $oFmtJ);
+
+my($iR, $iC, $oWkS, $oWkC);
+print "=========================================\n";
+print "FILE  :", $oBook->{File} , "\n";
+print "COUNT :", $oBook->{SheetCount} , "\n";
+print "AUTHOR:", $oBook->{Author} , "\n";
+#for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
+#    $oWkS = $oBook->{Worksheet}[$iSheet];
+for my $oWkS (@{$oBook->{Worksheet}}) {
+    print "--------- SHEET:", $oWkS->{Name}, "\n";
+    for(my $iR = $oWkS->{MinRow} ; 
+            defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
+        print "ROW HEIGHT:", $oWkS->{RowHeight}[$iR], "\n";
+        for(my $iC = $oWkS->{MinCol} ;
+                        defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
+            $oWkC = $oWkS->{Cells}[$iR][$iC];
+            print "( $iR , $iC ) =>", $oWkC->Value, "\n" if($oWkC);
+        }
+    }
+}

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExR.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExR.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExR.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,48 @@
+use strict;
+if(!(defined $ARGV[0])) {
+    print<<EOF;
+Usage: $0 Excel_File
+EOF
+    exit;
+}
+use Spreadsheet::ParseExcel;
+my $oExcel = new Spreadsheet::ParseExcel;
+my $oBook = $oExcel->Parse($ARGV[0]);
+
+my($iR, $iC, $oWkS, $oWkC);
+print "=========================================\n";
+print "FILE  :", $oBook->{File} , "\n";
+print "COUNT :", $oBook->{SheetCount} , "\n";
+print "AUTHOR:", $oBook->{Author} , "\n";
+for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
+    $oWkS = $oBook->{Worksheet}[$iSheet];
+    print "--------- SHEET:", $oWkS->{Name}, "\n";
+    for(my $iR = $oWkS->{MinRow} ; 
+            defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
+        for(my $iC = $oWkS->{MinCol} ;
+                        defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
+            $oWkC = $oWkS->{Cells}[$iR][$iC];
+            print "( $iR , $iC ) =>", $oWkC->Value, "\n" if($oWkC);
+            if($oWkC) {
+                if($oWkC->{Rich}) {
+                    foreach my $raR (@{$oWkC->{Rich}}) {
+                        my $oFont = $raR->[1];
+                        print
+                            "--------------------------------------------\n",
+                            'POS              :', $raR->[0], "\n",
+                            'Name             :', $oFont->{Name}, "\n",
+                            'Bold             :', $oFont->{Bold}, "\n",
+                            'Italic           :', $oFont->{Italic}, "\n",
+                            'Height           :', $oFont->{Height}, "\n",
+                            'Underline        :', $oFont->{Underline}, "\n",
+                            'UnderlineStyle   :', sprintf("%02x", $oFont->{UnderlineStyle}), "\n",
+                            'Color            :', $oFont->{Color}, "\n",
+                            'Color RGB        :', Spreadsheet::ParseExcel->ColorIdxToRGB($oFont->{Color}), "\n",
+                            'Strikeout        :', $oFont->{Strikeout}, "\n",
+                            'Super            :', $oFont->{Super}, "\n",
+                    }
+                }
+            }
+        }
+    }
+}

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExU.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExU.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpExU.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,36 @@
+# This script requieres Unicode::Map
+use strict;
+if($#ARGV < 1) {
+    print<<EOF;
+Usage: $0 Excel_File [Code]
+  Code:  CP932, CP1251, ... (same as Unicode::Map)
+EOF
+    exit;
+}
+use Spreadsheet::ParseExcel;
+use Spreadsheet::ParseExcel::FmtUnicode;
+my $oExcel = new Spreadsheet::ParseExcel;
+my $oFmtJ = Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map => $ARGV[1]);
+my $oBook = $oExcel->Parse($ARGV[0], $oFmtJ);
+
+my($iR, $iC, $oWkS, $oWkC);
+print "=========================================\n";
+print "FILE  :", $oBook->{File} , "\n";
+print "COUNT :", $oBook->{SheetCount} , "\n";
+print "AUTHOR:", $oBook->{Author} , "\n";
+
+my $table = [];
+
+for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
+    $oWkS = $oBook->{Worksheet}[$iSheet];
+    print "--------- SHEET:", $oWkS->{Name}, "\n";
+    for(my $iR = $oWkS->{MinRow} ; 
+            defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
+#       print "ROW HEIGHT:", $oWkS->{RowHeight}[$iR], "\n";
+        for(my $iC = $oWkS->{MinCol} ;
+                        defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
+            $oWkC = $oWkS->{Cells}[$iR][$iC];
+           print "( $iR , $iC ) =>", $oWkC->Value, "\n" if($oWkC);
+        }
+    }
+}

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpEx_2xml.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpEx_2xml.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/dmpEx_2xml.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,44 @@
+#Khalid EZZARAOUI khalid at yromem.com
+use strict;
+if(!(defined $ARGV[0])) {
+    print<<EOF;
+Usage: $0 Excel_File
+EOF
+    exit;
+}
+use Spreadsheet::ParseExcel;
+my $oExcel = new Spreadsheet::ParseExcel;
+my $oBook = $oExcel->Parse($ARGV[0]);
+
+my($iR, $iC, $oWkS, $oWkC);
+print '<?xml version="1.0" encoding="ISO-8859-1"?>', "\n";
+print "<document>", "\n";
+
+print "\t", "<meta>", "\n";
+print "\t\t", "<file>", $oBook->{File} , "</file>", "\n";
+print "\t\t", "<sheetcount>", $oBook->{SheetCount} , "</sheetcount>", "\n";
+print "\t\t", "<author>", $oBook->{Author} , "</author>", "\n";
+print "\t", "</meta>", "\n";
+
+print "\t", "<sheets>", "\n";
+#for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
+#    $oWkS = $oBook->{Worksheet}[$iSheet];
+foreach my $oWkS (@{$oBook->{Worksheet}}) {
+	print "\t\t", "<sheet " ;
+	print "name=\"", $oWkS->{Name}, "\" >",  "\n";
+	for(my $iR = $oWkS->{MinRow} ; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
+		print "\t\t\t", "<row num=\"", $iR, "\">", "\n" ;
+		for(my $iC = $oWkS->{MinCol} ; defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
+			$oWkC = $oWkS->{Cells}[$iR][$iC];
+			print "\t\t\t\t", "<col num=\"", $iC, "\"", ">", $oWkC->Value, "</col>", "\n" if($oWkC);
+			# print $oWkC->{_Kind}, "\n";
+			}
+		print "\t\t\t", "</row>", "\n" ;
+	}
+	print "\t\t", "</sheet>\n" ;
+}
+	
+print "\t", "</sheets>", "\n";
+
+print "</document>", "\n";
+

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/iftest.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/iftest.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/iftest.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,29 @@
+use strict;
+use Spreadsheet::ParseExcel;
+my $oBook = 
+	Spreadsheet::ParseExcel::Workbook->Parse('Excel/Test97.xls');
+my($iR, $iC, $oWkS, $oWkC);
+foreach my $oWkS (@{$oBook->{Worksheet}}) {
+    print "--------- SHEET:", $oWkS->{Name}, "\n";
+    for(my $iR = $oWkS->{MinRow} ; 
+            defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
+        for(my $iC = $oWkS->{MinCol} ;
+                        defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
+            $oWkC = $oWkS->{Cells}[$iR][$iC];
+            print "( $iR , $iC ) =>", $oWkC->Value, "\n" if($oWkC);
+        }
+    }
+}
+#Sheet Name
+print $oBook->Worksheet('Sheet1-ASC')->{Cells}[0][1]->Value, "\n";
+#Sheet No
+print $oBook->Worksheet(0)->{Cells}[0][1]->Value, "\n";
+#Sheet Not found
+print (($oBook->Worksheet('SHEET1'))? 'Exists' : 'Not Exists'), "\n";
+
+use Spreadsheet::ParseExcel::SaveParser;
+$oBook = 
+	Spreadsheet::ParseExcel::SaveParser::Workbook->Parse('Excel/Test97.xls');
+my $oWs = $oBook->AddWorksheet('TEST1');
+$oWs->AddCell(10, 1, 'New Cell');
+$oBook->SaveAs('iftest.xls');

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/iftestj.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/iftestj.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/iftestj.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,27 @@
+use strict;
+use Spreadsheet::ParseExcel;
+use Spreadsheet::ParseExcel::FmtJapan;
+my $oBook = 
+	Spreadsheet::ParseExcel::Workbook->Parse(
+		'Excel/Test97J.xls',
+		Spreadsheet::ParseExcel::FmtJapan->new (Code => 'sjis'));
+
+my($iR, $iC, $oWkS, $oWkC);
+print "=========================================\n";
+print "FILE  :", $oBook->{File} , "\n";
+print "COUNT :", $oBook->{SheetCount} , "\n";
+print "AUTHOR:", $oBook->{Author} , "\n";
+#for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
+#    $oWkS = $oBook->{Worksheet}[$iSheet];
+foreach my $oWkS (@{$oBook->{Worksheet}}) {
+    print "--------- SHEET:", $oWkS->{Name}, "\n";
+    for(my $iR = $oWkS->{MinRow} ; 
+            defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
+        for(my $iC = $oWkS->{MinCol} ;
+                        defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
+            $oWkC = $oWkS->{Cells}[$iR][$iC];
+            print "( $iR , $iC ) =>", $oWkC->Value, "\n" if($oWkC);
+print $oWkC->{_Kind}, "\n";
+        }
+    }
+}

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_fmt
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_fmt	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_fmt	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,288 @@
+============ 00 
+Fmt: @                    : -2        : Data: -2
+Fmt: @                    : 0         : Data: 0
+Fmt: @                    : 1234      : Data: 1234
+Fmt: @                    : -1234     : Data: -1234
+Fmt: @                    : 34323.23232: Data: 34323.23232
+Fmt: @                    : -233232.3233: Data: -233232.3233
+Fmt: @                    : 21997.5077893519: Data: 21997.5077893519
+============ 01 
+Fmt: 0                    : -2        : Data: -2
+Fmt: 0                    : 0         : Data: 0
+Fmt: 0                    : 1234      : Data: 1234
+Fmt: 0                    : -1234     : Data: -1234
+Fmt: 0                    : 34323.23232: Data: 34323
+Fmt: 0                    : -233232.3233: Data: -233232
+Fmt: 0                    : 21997.5077893519: Data: 21998
+============ 02 
+Fmt: 0.00                 : -2        : Data: -2.00
+Fmt: 0.00                 : 0         : Data: 0.00
+Fmt: 0.00                 : 1234      : Data: 1234.00
+Fmt: 0.00                 : -1234     : Data: -1234.00
+Fmt: 0.00                 : 34323.23232: Data: 34323.23
+Fmt: 0.00                 : -233232.3233: Data: -233232.32
+Fmt: 0.00                 : 21997.5077893519: Data: 21997.51
+============ 03 
+Fmt: #,##0                : -2        : Data: -2
+Fmt: #,##0                : 0         : Data: 0
+Fmt: #,##0                : 1234      : Data: 1,234
+Fmt: #,##0                : -1234     : Data: -1,234
+Fmt: #,##0                : 34323.23232: Data: 34,323
+Fmt: #,##0                : -233232.3233: Data: -233,232
+Fmt: #,##0                : 21997.5077893519: Data: 21,998
+============ 04 
+Fmt: #,##0.00             : -2        : Data: -2.00
+Fmt: #,##0.00             : 0         : Data: 0.00
+Fmt: #,##0.00             : 1234      : Data: 1,234.00
+Fmt: #,##0.00             : -1234     : Data: -1,234.00
+Fmt: #,##0.00             : 34323.23232: Data: 34,323.23
+Fmt: #,##0.00             : -233232.3233: Data: -233,232.32
+Fmt: #,##0.00             : 21997.5077893519: Data: 21,997.51
+============ 05 
+Fmt: (\\#,##0_);(\\#,##0) : -2        : Data: \-2
+Fmt: (\\#,##0_);(\\#,##0) : 0         : Data: \0 
+Fmt: (\\#,##0_);(\\#,##0) : 1234      : Data: \1,234 
+Fmt: (\\#,##0_);(\\#,##0) : -1234     : Data: \-1,234
+Fmt: (\\#,##0_);(\\#,##0) : 34323.23232: Data: \34,323 
+Fmt: (\\#,##0_);(\\#,##0) : -233232.3233: Data: \-233,232
+Fmt: (\\#,##0_);(\\#,##0) : 21997.5077893519: Data: \21,998 
+============ 06 
+Fmt: (\\#,##0_);[RED](\\#,##0) : -2        : Data: \-2
+Fmt: (\\#,##0_);[RED](\\#,##0) : 0         : Data: \0 
+Fmt: (\\#,##0_);[RED](\\#,##0) : 1234      : Data: \1,234 
+Fmt: (\\#,##0_);[RED](\\#,##0) : -1234     : Data: \-1,234
+Fmt: (\\#,##0_);[RED](\\#,##0) : 34323.23232: Data: \34,323 
+Fmt: (\\#,##0_);[RED](\\#,##0) : -233232.3233: Data: \-233,232
+Fmt: (\\#,##0_);[RED](\\#,##0) : 21997.5077893519: Data: \21,998 
+============ 07 
+Fmt: (\\#,##0.00_);(\\#,##0.00_) : -2        : Data: \-2.00 
+Fmt: (\\#,##0.00_);(\\#,##0.00_) : 0         : Data: \0.00 
+Fmt: (\\#,##0.00_);(\\#,##0.00_) : 1234      : Data: \1,234.00 
+Fmt: (\\#,##0.00_);(\\#,##0.00_) : -1234     : Data: \-1,234.00 
+Fmt: (\\#,##0.00_);(\\#,##0.00_) : 34323.23232: Data: \34,323.23 
+Fmt: (\\#,##0.00_);(\\#,##0.00_) : -233232.3233: Data: \-233,232.32 
+Fmt: (\\#,##0.00_);(\\#,##0.00_) : 21997.5077893519: Data: \21,997.51 
+============ 08 
+Fmt: (\\#,##0.00_);[RED](\\#,##0.00_) : -2        : Data: \-2.00 
+Fmt: (\\#,##0.00_);[RED](\\#,##0.00_) : 0         : Data: \0.00 
+Fmt: (\\#,##0.00_);[RED](\\#,##0.00_) : 1234      : Data: \1,234.00 
+Fmt: (\\#,##0.00_);[RED](\\#,##0.00_) : -1234     : Data: \-1,234.00 
+Fmt: (\\#,##0.00_);[RED](\\#,##0.00_) : 34323.23232: Data: \34,323.23 
+Fmt: (\\#,##0.00_);[RED](\\#,##0.00_) : -233232.3233: Data: \-233,232.32 
+Fmt: (\\#,##0.00_);[RED](\\#,##0.00_) : 21997.5077893519: Data: \21,997.51 
+============ 09 
+Fmt: 0%                   : -2        : Data: -200%
+Fmt: 0%                   : 0         : Data: 0%
+Fmt: 0%                   : 1234      : Data: 123400%
+Fmt: 0%                   : -1234     : Data: -123400%
+Fmt: 0%                   : 34323.23232: Data: 3432323%
+Fmt: 0%                   : -233232.3233: Data: -23323232%
+Fmt: 0%                   : 21997.5077893519: Data: 2199751%
+============ 0a 
+Fmt: 0.00%                : -2        : Data: -200.00%
+Fmt: 0.00%                : 0         : Data: 0.00%
+Fmt: 0.00%                : 1234      : Data: 123400.00%
+Fmt: 0.00%                : -1234     : Data: -123400.00%
+Fmt: 0.00%                : 34323.23232: Data: 3432323.23%
+Fmt: 0.00%                : -233232.3233: Data: -23323232.33%
+Fmt: 0.00%                : 21997.5077893519: Data: 2199750.78%
+============ 0b 
+Fmt: 0.00E+00             : -2        : Data: -2.00E+00
+Fmt: 0.00E+00             : 0         : Data: 0.00E+00
+Fmt: 0.00E+00             : 1234      : Data: 1.23E+03
+Fmt: 0.00E+00             : -1234     : Data: -1.23E+03
+Fmt: 0.00E+00             : 34323.23232: Data: 3.43E+04
+Fmt: 0.00E+00             : -233232.3233: Data: -2.33E+05
+Fmt: 0.00E+00             : 21997.5077893519: Data: 2.20E+04
+============ 0c 
+Fmt: # ?/?                : -2        : Data: -2 
+Fmt: # ?/?                : 0         : Data: 0 
+Fmt: # ?/?                : 1234      : Data: 1234 
+Fmt: # ?/?                : -1234     : Data: -1234 
+Fmt: # ?/?                : 34323.23232: Data: 34323 2/9
+Fmt: # ?/?                : -233232.3233: Data: -233232 1/3
+Fmt: # ?/?                : 21997.5077893519: Data: 21997 1/2
+============ 0d 
+Fmt: # ??/??              : -2        : Data: -2 
+Fmt: # ??/??              : 0         : Data: 0 
+Fmt: # ??/??              : 1234      : Data: 1234 
+Fmt: # ??/??              : -1234     : Data: -1234 
+Fmt: # ??/??              : 34323.23232: Data: 34323 23/99
+Fmt: # ??/??              : -233232.3233: Data: -233232 32/99
+Fmt: # ??/??              : 21997.5077893519: Data: 21997 33/65
+============ 0e 
+Fmt: m/d/yy               : -2        : Data: 1/-2/00
+Fmt: m/d/yy               : 0         : Data: 1/0/00
+Fmt: m/d/yy               : 1234      : Data: 5/18/03
+Fmt: m/d/yy               : -1234     : Data: 1/-1234/00
+Fmt: m/d/yy               : 34323.23232: Data: 12/20/93
+Fmt: m/d/yy               : -233232.3233: Data: 1/-233232/00
+Fmt: m/d/yy               : 21997.5077893519: Data: 3/22/60
+============ 0f 
+Fmt: d-mmm-yy             : -2        : Data: -2-Jan-00
+Fmt: d-mmm-yy             : 0         : Data: 0-Jan-00
+Fmt: d-mmm-yy             : 1234      : Data: 18-May-03
+Fmt: d-mmm-yy             : -1234     : Data: -1234-Jan-00
+Fmt: d-mmm-yy             : 34323.23232: Data: 20-Dec-93
+Fmt: d-mmm-yy             : -233232.3233: Data: -233232-Jan-00
+Fmt: d-mmm-yy             : 21997.5077893519: Data: 22-Mar-60
+============ 10 
+Fmt: d-mmm                : -2        : Data: -2-Jan
+Fmt: d-mmm                : 0         : Data: 0-Jan
+Fmt: d-mmm                : 1234      : Data: 18-May
+Fmt: d-mmm                : -1234     : Data: -1234-Jan
+Fmt: d-mmm                : 34323.23232: Data: 20-Dec
+Fmt: d-mmm                : -233232.3233: Data: -233232-Jan
+Fmt: d-mmm                : 21997.5077893519: Data: 22-Mar
+============ 11 
+Fmt: mmm-yy               : -2        : Data: Jan-00
+Fmt: mmm-yy               : 0         : Data: Jan-00
+Fmt: mmm-yy               : 1234      : Data: May-03
+Fmt: mmm-yy               : -1234     : Data: Jan-00
+Fmt: mmm-yy               : 34323.23232: Data: Dec-93
+Fmt: mmm-yy               : -233232.3233: Data: Jan-00
+Fmt: mmm-yy               : 21997.5077893519: Data: Mar-60
+============ 12 
+Fmt: h:mm AM/PM           : -2        : Data: 0:00 AM/PM
+Fmt: h:mm AM/PM           : 0         : Data: 0:00 AM/PM
+Fmt: h:mm AM/PM           : 1234      : Data: 0:00 AM/PM
+Fmt: h:mm AM/PM           : -1234     : Data: 0:00 AM/PM
+Fmt: h:mm AM/PM           : 34323.23232: Data: 5:34 AM/PM
+Fmt: h:mm AM/PM           : -233232.3233: Data: -7:-45 AM/PM
+Fmt: h:mm AM/PM           : 21997.5077893519: Data: 12:11 AM/PM
+============ 13 
+Fmt: h:mm:ss AM/PM        : -2        : Data: 0:00:00 AM/PM
+Fmt: h:mm:ss AM/PM        : 0         : Data: 0:00:00 AM/PM
+Fmt: h:mm:ss AM/PM        : 1234      : Data: 0:00:00 AM/PM
+Fmt: h:mm:ss AM/PM        : -1234     : Data: 0:00:00 AM/PM
+Fmt: h:mm:ss AM/PM        : 34323.23232: Data: 5:34:32 AM/PM
+Fmt: h:mm:ss AM/PM        : -233232.3233: Data: -7:-45:-33 AM/PM
+Fmt: h:mm:ss AM/PM        : 21997.5077893519: Data: 12:11:13 AM/PM
+============ 14 
+Fmt: h:mm                 : -2        : Data: 0:00
+Fmt: h:mm                 : 0         : Data: 0:00
+Fmt: h:mm                 : 1234      : Data: 0:00
+Fmt: h:mm                 : -1234     : Data: 0:00
+Fmt: h:mm                 : 34323.23232: Data: 5:34
+Fmt: h:mm                 : -233232.3233: Data: -7:-45
+Fmt: h:mm                 : 21997.5077893519: Data: 12:11
+============ 15 
+Fmt: h:mm:ss              : -2        : Data: 0:00:00
+Fmt: h:mm:ss              : 0         : Data: 0:00:00
+Fmt: h:mm:ss              : 1234      : Data: 0:00:00
+Fmt: h:mm:ss              : -1234     : Data: 0:00:00
+Fmt: h:mm:ss              : 34323.23232: Data: 5:34:32
+Fmt: h:mm:ss              : -233232.3233: Data: -7:-45:-33
+Fmt: h:mm:ss              : 21997.5077893519: Data: 12:11:13
+============ 16 
+Fmt: m/d/yy h:mm          : -2        : Data: 1/-2/00 0:00
+Fmt: m/d/yy h:mm          : 0         : Data: 1/0/00 0:00
+Fmt: m/d/yy h:mm          : 1234      : Data: 5/18/03 0:00
+Fmt: m/d/yy h:mm          : -1234     : Data: 1/-1234/00 0:00
+Fmt: m/d/yy h:mm          : 34323.23232: Data: 12/20/93 5:34
+Fmt: m/d/yy h:mm          : -233232.3233: Data: 1/-233232/00 -7:-45
+Fmt: m/d/yy h:mm          : 21997.5077893519: Data: 3/22/60 12:11
+============ 25 
+Fmt: (#,##0_);(#,##0)     : -2        : Data: -2
+Fmt: (#,##0_);(#,##0)     : 0         : Data: 0 
+Fmt: (#,##0_);(#,##0)     : 1234      : Data: 1,234 
+Fmt: (#,##0_);(#,##0)     : -1234     : Data: -1,234
+Fmt: (#,##0_);(#,##0)     : 34323.23232: Data: 34,323 
+Fmt: (#,##0_);(#,##0)     : -233232.3233: Data: -233,232
+Fmt: (#,##0_);(#,##0)     : 21997.5077893519: Data: 21,998 
+============ 26 
+Fmt: (#,##0_);[RED](#,##0) : -2        : Data: -2
+Fmt: (#,##0_);[RED](#,##0) : 0         : Data: 0 
+Fmt: (#,##0_);[RED](#,##0) : 1234      : Data: 1,234 
+Fmt: (#,##0_);[RED](#,##0) : -1234     : Data: -1,234
+Fmt: (#,##0_);[RED](#,##0) : 34323.23232: Data: 34,323 
+Fmt: (#,##0_);[RED](#,##0) : -233232.3233: Data: -233,232
+Fmt: (#,##0_);[RED](#,##0) : 21997.5077893519: Data: 21,998 
+============ 27 
+Fmt: (#,##0.00);(#,##0.00) : -2        : Data: -2.00
+Fmt: (#,##0.00);(#,##0.00) : 0         : Data: 0.00
+Fmt: (#,##0.00);(#,##0.00) : 1234      : Data: 1,234.00
+Fmt: (#,##0.00);(#,##0.00) : -1234     : Data: -1,234.00
+Fmt: (#,##0.00);(#,##0.00) : 34323.23232: Data: 34,323.23
+Fmt: (#,##0.00);(#,##0.00) : -233232.3233: Data: -233,232.32
+Fmt: (#,##0.00);(#,##0.00) : 21997.5077893519: Data: 21,997.51
+============ 28 
+Fmt: (#,##0.00);[RED](#,##0.00) : -2        : Data: -2.00
+Fmt: (#,##0.00);[RED](#,##0.00) : 0         : Data: 0.00
+Fmt: (#,##0.00);[RED](#,##0.00) : 1234      : Data: 1,234.00
+Fmt: (#,##0.00);[RED](#,##0.00) : -1234     : Data: -1,234.00
+Fmt: (#,##0.00);[RED](#,##0.00) : 34323.23232: Data: 34,323.23
+Fmt: (#,##0.00);[RED](#,##0.00) : -233232.3233: Data: -233,232.32
+Fmt: (#,##0.00);[RED](#,##0.00) : 21997.5077893519: Data: 21,997.51
+============ 29 
+Fmt: _(*#,##0_);_(*(#,##0);_(*"-"_);_(@_) : -2        : Data:  -2
+Fmt: _(*#,##0_);_(*(#,##0);_(*"-"_);_(@_) : 0         : Data: 0
+Fmt: _(*#,##0_);_(*(#,##0);_(*"-"_);_(@_) : 1234      : Data:  1,234 
+Fmt: _(*#,##0_);_(*(#,##0);_(*"-"_);_(@_) : -1234     : Data:  -1,234
+Fmt: _(*#,##0_);_(*(#,##0);_(*"-"_);_(@_) : 34323.23232: Data:  34,323 
+Fmt: _(*#,##0_);_(*(#,##0);_(*"-"_);_(@_) : -233232.3233: Data:  -233,232
+Fmt: _(*#,##0_);_(*(#,##0);_(*"-"_);_(@_) : 21997.5077893519: Data:  21,998 
+============ 2a 
+Fmt: _(\\*#,##0_);_(\\*(#,##0);_(*"-"_);_(@_) : -2        : Data:  \-2
+Fmt: _(\\*#,##0_);_(\\*(#,##0);_(*"-"_);_(@_) : 0         : Data: 0
+Fmt: _(\\*#,##0_);_(\\*(#,##0);_(*"-"_);_(@_) : 1234      : Data:  \1,234 
+Fmt: _(\\*#,##0_);_(\\*(#,##0);_(*"-"_);_(@_) : -1234     : Data:  \-1,234
+Fmt: _(\\*#,##0_);_(\\*(#,##0);_(*"-"_);_(@_) : 34323.23232: Data:  \34,323 
+Fmt: _(\\*#,##0_);_(\\*(#,##0);_(*"-"_);_(@_) : -233232.3233: Data:  \-233,232
+Fmt: _(\\*#,##0_);_(\\*(#,##0);_(*"-"_);_(@_) : 21997.5077893519: Data:  \21,998 
+============ 2b 
+Fmt: _(*#,##0.00_);_(*(#,##0.00);_(*"-"??_);_(@_) : -2        : Data:  -2.00
+Fmt: _(*#,##0.00_);_(*(#,##0.00);_(*"-"??_);_(@_) : 0         : Data:  -0 
+Fmt: _(*#,##0.00_);_(*(#,##0.00);_(*"-"??_);_(@_) : 1234      : Data:  1,234.00 
+Fmt: _(*#,##0.00_);_(*(#,##0.00);_(*"-"??_);_(@_) : -1234     : Data:  -1,234.00
+Fmt: _(*#,##0.00_);_(*(#,##0.00);_(*"-"??_);_(@_) : 34323.23232: Data:  34,323.23 
+Fmt: _(*#,##0.00_);_(*(#,##0.00);_(*"-"??_);_(@_) : -233232.3233: Data:  -233,232.32
+Fmt: _(*#,##0.00_);_(*(#,##0.00);_(*"-"??_);_(@_) : 21997.5077893519: Data:  21,997.51 
+============ 2c 
+Fmt: _(\\*#,##0.00_);_(\\*(#,##0.00);_(*"-"??_);_(@_) : -2        : Data:  \-2.00
+Fmt: _(\\*#,##0.00_);_(\\*(#,##0.00);_(*"-"??_);_(@_) : 0         : Data:  -0 
+Fmt: _(\\*#,##0.00_);_(\\*(#,##0.00);_(*"-"??_);_(@_) : 1234      : Data:  \1,234.00 
+Fmt: _(\\*#,##0.00_);_(\\*(#,##0.00);_(*"-"??_);_(@_) : -1234     : Data:  \-1,234.00
+Fmt: _(\\*#,##0.00_);_(\\*(#,##0.00);_(*"-"??_);_(@_) : 34323.23232: Data:  \34,323.23 
+Fmt: _(\\*#,##0.00_);_(\\*(#,##0.00);_(*"-"??_);_(@_) : -233232.3233: Data:  \-233,232.32
+Fmt: _(\\*#,##0.00_);_(\\*(#,##0.00);_(*"-"??_);_(@_) : 21997.5077893519: Data:  \21,997.51 
+============ 2d 
+Fmt: mm:ss                : -2        : Data: 00:00
+Fmt: mm:ss                : 0         : Data: 00:00
+Fmt: mm:ss                : 1234      : Data: 00:00
+Fmt: mm:ss                : -1234     : Data: 00:00
+Fmt: mm:ss                : 34323.23232: Data: 34:32
+Fmt: mm:ss                : -233232.3233: Data: -45:-33
+Fmt: mm:ss                : 21997.5077893519: Data: 11:13
+============ 2e 
+Fmt: [h]:mm:ss            : -2        : Data: -48:00:00
+Fmt: [h]:mm:ss            : 0         : Data: 0:00:00
+Fmt: [h]:mm:ss            : 1234      : Data: 29616:00:00
+Fmt: [h]:mm:ss            : -1234     : Data: -29616:00:00
+Fmt: [h]:mm:ss            : 34323.23232: Data: 823757:34:32
+Fmt: [h]:mm:ss            : -233232.3233: Data: -5597575:-45:-33
+Fmt: [h]:mm:ss            : 21997.5077893519: Data: 527940:11:13
+============ 2f 
+Fmt: mm:ss.0              : -2        : Data: 00:00.0
+Fmt: mm:ss.0              : 0         : Data: 00:00.0
+Fmt: mm:ss.0              : 1234      : Data: 00:00.0
+Fmt: mm:ss.0              : -1234     : Data: 00:00.0
+Fmt: mm:ss.0              : 34323.23232: Data: 34:32.4
+Fmt: mm:ss.0              : -233232.3233: Data: -45:-33..
+Fmt: mm:ss.0              : 21997.5077893519: Data: 11:13.0
+============ 30 
+Fmt: ##0.0E+0             : -2        : Data: -2.0E+0
+Fmt: ##0.0E+0             : 0         : Data: 0.0E+0
+Fmt: ##0.0E+0             : 1234      : Data: 1.2E+3
+Fmt: ##0.0E+0             : -1234     : Data: -1.2E+3
+Fmt: ##0.0E+0             : 34323.23232: Data: 34.3E+3
+Fmt: ##0.0E+0             : -233232.3233: Data: -233.2E+3
+Fmt: ##0.0E+0             : 21997.5077893519: Data: 22.0E+3
+============ 31 
+Fmt: @                    : -2        : Data: -2
+Fmt: @                    : 0         : Data: 0
+Fmt: @                    : 1234      : Data: 1234
+Fmt: @                    : -1234     : Data: -1234
+Fmt: @                    : 34323.23232: Data: 34323.23232
+Fmt: @                    : -233232.3233: Data: -233232.3233
+Fmt: @                    : 21997.5077893519: Data: 21997.5077893519

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_info
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_info	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_info	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,7485 @@
+=========================================
+FILE             :Excel/FmtTest.xls
+COUNT            :2
+AUTHOR           :kawait
+--------- SHEET:Format
+>> Print Setting
+Landscape        :0
+Scale            :100
+FitWidth         :2
+FitHeight        :3
+PageFit          :1
+PaperSize        :13
+PageStart        :2
+UsePage          :1
+>> Format
+Mergin Left      :1
+       Right     :2
+       Top       :3
+       Bottom    :4
+       Header    :5
+       Footer    :6
+Horizontal Center:0
+Vertical Center  :1
+Header           :&LLeft Header&RHippo2000
+Footer           :&LHippo2000&CCenter Footer
+Print Area       :
+  Area            :14,6,39,12
+Print Title      :
+          Row    :
+          Column :
+Print Gridlines  :1
+Print Headings   :1
+NoColor          :0
+Draft            :0
+Notes            :0
+LeftToRight      :1
+Merged Area:9,2,9,3
+------------------------------------------------------
+( 0 , 0 ) =>Font
+Format           :@
+AlignH           :2
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :1,1,1,1
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :0
+Hidden           :1
+------------------------------------------------------
+( 0 , 1 ) =>Courier New
+Format           :@
+AlignH           :6
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Courier New
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :1,1,1,1
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :0
+Hidden           :1
+------------------------------------------------------
+( 0 , 2 ) =>Arial Black
+Format           :@
+AlignH           :6
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Arial Black
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :1,1,1,1
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :0
+Hidden           :1
+------------------------------------------------------
+( 1 , 0 ) =>Font 12
+Format           :@
+AlignH           :6
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :12
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :1,1,1,1
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :0
+Hidden           :1
+------------------------------------------------------
+( 1 , 1 ) =>Courier New 20
+Format           :@
+AlignH           :6
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Courier New
+Bold             :0
+Italic           :0
+Height           :20
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :1,1,1,1
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :0
+Hidden           :1
+------------------------------------------------------
+( 1 , 2 ) =>Arial Black 8
+Format           :@
+AlignH           :6
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Arial Black
+Bold             :0
+Italic           :0
+Height           :8
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :1,1,1,1
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :0
+Hidden           :1
+------------------------------------------------------
+( 2 , 0 ) =>RED
+Format           :@
+AlignH           :6
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :10
+Color RGB        :FF0000
+Strikeout        :0
+Super            :0
+BdrStyle         :1,1,1,1
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :0
+Hidden           :1
+------------------------------------------------------
+( 2 , 1 ) =>YELLOW
+Format           :@
+AlignH           :6
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Courier New
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :13
+Color RGB        :FFFF00
+Strikeout        :0
+Super            :0
+BdrStyle         :1,1,1,1
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :0
+Hidden           :1
+------------------------------------------------------
+( 2 , 2 ) =>Sky Blue
+Format           :@
+AlignH           :6
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Arial Black
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :40
+Color RGB        :00CCFF
+Strikeout        :0
+Super            :0
+BdrStyle         :1,1,1,1
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :0
+Hidden           :1
+------------------------------------------------------
+( 3 , 0 ) =>RED
+Format           :@
+AlignH           :6
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :1
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :10
+Color RGB        :FF0000
+Strikeout        :0
+Super            :0
+BdrStyle         :1,1,1,1
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :0
+Hidden           :1
+------------------------------------------------------
+( 3 , 1 ) =>PINK BOLD
+Format           :@
+AlignH           :6
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Courier New
+Bold             :1
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :14
+Color RGB        :FF00FF
+Strikeout        :0
+Super            :0
+BdrStyle         :1,1,1,1
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :0
+Hidden           :1
+------------------------------------------------------
+( 3 , 2 ) =>Sky Blue
+Format           :@
+AlignH           :6
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Arial Black
+Bold             :1
+Italic           :1
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :40
+Color RGB        :00CCFF
+Strikeout        :0
+Super            :0
+BdrStyle         :1,1,1,1
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :0
+Hidden           :1
+------------------------------------------------------
+( 4 , 0 ) =>RED
+Format           :@
+AlignH           :6
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :1
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :10
+Color RGB        :FF0000
+Strikeout        :1
+Super            :0
+BdrStyle         :1,1,1,1
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :0
+Hidden           :1
+------------------------------------------------------
+( 4 , 1 ) =>PINK Super
+Format           :@
+AlignH           :6
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Courier New
+Bold             :1
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :14
+Color RGB        :FF00FF
+Strikeout        :0
+Super            :1
+BdrStyle         :1,1,1,1
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :0
+Hidden           :1
+------------------------------------------------------
+( 4 , 2 ) =>Sky Super
+Format           :@
+AlignH           :6
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Arial Black
+Bold             :1
+Italic           :1
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :40
+Color RGB        :00CCFF
+Strikeout        :0
+Super            :2
+BdrStyle         :1,1,1,1
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :0
+Hidden           :1
+------------------------------------------------------
+( 5 , 0 ) =>12,323  
+Format           :#,##0_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 5 , 1 ) =>@ -100
+Format           :0;"@ "0
+AlignH           :1
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 5 , 2 ) =>3-23-64
+Format           :m-d-yy
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 6 , 0 ) =>12,323  
+Format           :#,##0_ 
+AlignH           :2
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 6 , 1 ) =>2-3459
+Format           :[<=99999999]####\-####;\(00\)\ ####\-####
+AlignH           :1
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 6 , 2 ) =>KABA
+Format           :m-d-yy
+AlignH           :3
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 7 , 0 ) =>12,323  
+Format           :#,##0_ 
+AlignH           :4
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 7 , 1 ) =>23459 
+Format           :0_);\(0\)
+AlignH           :1
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 7 , 2 ) =>KABA
+Format           :m-d-yy
+AlignH           :6
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 7 , 3 ) =>
+Format           :@
+AlignH           :6
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 7 , 4 ) =>a cd 
+Format           :@
+AlignH           :7
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 8 , 0 ) =>12,323  
+Format           :#,##0_ 
+AlignH           :2
+AlignV           :0
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 8 , 1 ) =>1:00
+Format           :h:mm
+AlignH           :1
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 8 , 2 ) =>KABA
+Format           :m-d-yy
+AlignH           :3
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 8 , 3 ) =>KA
+BA
+Format           :0
+AlignH           :3
+AlignV           :4
+Indent           :0
+Wrap             :1
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 9 , 0 ) =>12,323  
+Format           :#,##0_ 
+AlignH           :4
+AlignV           :3
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 9 , 1 ) =>23-Mar
+Format           :d-mmm
+AlignH           :5
+AlignV           :2
+Indent           :0
+Wrap             :1
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 9 , 2 ) =>KABA
+Format           :m-d-yy
+AlignH           :2
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :1
+Merged           :1
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 9 , 3 ) =>
+Format           :@
+AlignH           :2
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :1
+Merged           :1
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 9 , 4 ) =>kaba
+Format           :@
+AlignH           :1
+AlignV           :2
+Indent           :5
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 10 , 0 ) =>ABCDEFGHIJKLMNOPQR
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :1
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 10 , 1 ) =>ABCDEFGHIJKLMNOPQR
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :1
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 11 , 0 ) =>ABCDEFGHIJKLMNOPQR
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :1
+Shrink           :1
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 11 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :4,64,8
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 11 , 5 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :4,64,13
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 12 , 0 ) =>ABC
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :45
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 12 , 1 ) =>ABC
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :-45
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 12 , 2 ) =>ABC
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :90
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 12 , 3 ) =>ABC
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :-90
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 12 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :4,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 13 , 0 ) =>FORMAT
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 14 , 0 ) =>123456
+Format           :0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 14 , 1 ) =>
+Format           :0.00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 14 , 2 ) =>
+Format           :#,##0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 14 , 3 ) =>
+Format           :#,##0.00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 14 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,65,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 14 , 5 ) =>1
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 14 , 6 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,8,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 14 , 7 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :7,64,16
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 14 , 8 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,10,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 14 , 9 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,14,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 14 , 10 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,45,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 14 , 11 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,24,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 14 , 12 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,32,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 15 , 0 ) =>123456.12
+Format           :0.00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 15 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :3,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 15 , 5 ) =>2
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 15 , 6 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :3,64,60
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 15 , 7 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :8,64,53
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 15 , 8 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,52,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 15 , 9 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,51,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 15 , 10 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,47,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 15 , 11 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,25,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 15 , 12 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,33,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 16 , 0 ) =>123,456
+Format           :#,##0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 16 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :2,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 16 , 5 ) =>3
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 16 , 6 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :2,64,59
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 16 , 7 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :9,64,19
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 16 , 8 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,50,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 16 , 9 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,13,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 16 , 10 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,43,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 16 , 11 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,26,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 16 , 12 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,34,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 17 , 0 ) =>123,456.12
+Format           :#,##0.00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 17 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :4,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 17 , 5 ) =>4
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 17 , 6 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :4,64,58
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 17 , 7 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :10,64,17
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 17 , 8 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,57,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 17 , 9 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,11,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 17 , 10 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,42,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 17 , 11 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,27,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 17 , 12 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,35,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 18 , 0 ) =>   123,456  
+Format           :_ * #,##0_ ;_ * \-#,##0_ ;_ * "-"_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 18 , 1 ) =>   --123,456  
+Format           :_ * #,##0_ ;_ * \-#,##0_ ;_ * "-"_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 18 , 2 ) =>0
+Format           :_ * #,##0_ ;_ * \-#,##0_ ;_ * "-"_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 18 , 3 ) =>  abc  
+Format           :_ * #,##0_ ;_ * \-#,##0_ ;_ * "-"_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 18 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :17,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 18 , 5 ) =>5
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 18 , 6 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :17,64,56
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 18 , 7 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :11,64,21
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 18 , 8 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,49,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 18 , 9 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,15,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 18 , 10 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,41,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 18 , 11 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,28,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 18 , 12 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,36,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 19 , 0 ) =>   123,456.12  
+Format           :_ * #,##0.00_ ;_ * \-#,##0.00_ ;_ * "-"??_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 19 , 1 ) =>   --123,456.12  
+Format           :_ * #,##0.00_ ;_ * \-#,##0.00_ ;_ * "-"??_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 19 , 2 ) =>   -0  
+Format           :_ * #,##0.00_ ;_ * \-#,##0.00_ ;_ * "-"??_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 19 , 3 ) =>  abc  
+Format           :_ * #,##0.00_ ;_ * \-#,##0.00_ ;_ * "-"??_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 19 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :18,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 19 , 5 ) =>6
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 19 , 6 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :18,64,18
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 19 , 7 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :12,64,12
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 19 , 8 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,48,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 19 , 9 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,40,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 19 , 10 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,44,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 19 , 11 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,29,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 19 , 12 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,37,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 20 , 0 ) =>  * 123,456  
+Format           :_ "\"* #,##0_ ;_ "\"* \-#,##0_ ;_ "\"* "-"_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 20 , 1 ) =>  * --123,456  
+Format           :_ "\"* #,##0_ ;_ "\"* \-#,##0_ ;_ "\"* "-"_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 20 , 2 ) =>0
+Format           :_ "\"* #,##0_ ;_ "\"* \-#,##0_ ;_ "\"* "-"_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 20 , 3 ) =>  abc  
+Format           :_ "\"* #,##0_ ;_ "\"* \-#,##0_ ;_ "\"* "-"_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 20 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :5,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 20 , 5 ) =>7
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 20 , 6 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :5,64,62
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 20 , 7 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :13,64,54
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 20 , 8 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,20,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 20 , 9 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,61,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 20 , 10 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,46,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 20 , 11 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,30,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 20 , 12 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,38,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 21 , 0 ) =>  * 123,456.12  
+Format           :_ "\"* #,##0.00_ ;_ "\"* \-#,##0.00_ ;_ "\"* "-"??_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 21 , 1 ) =>  * --123,456.12  
+Format           :_ "\"* #,##0.00_ ;_ "\"* \-#,##0.00_ ;_ "\"* "-"??_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 21 , 2 ) =>  * -0  
+Format           :_ "\"* #,##0.00_ ;_ "\"* \-#,##0.00_ ;_ "\"* "-"??_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 21 , 3 ) =>  abc  
+Format           :_ "\"* #,##0.00_ ;_ "\"* \-#,##0.00_ ;_ "\"* "-"??_ ;_ @_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 21 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :6,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 21 , 5 ) =>8
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 21 , 6 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :6,64,63
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 21 , 7 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :14,64,23
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 21 , 8 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,55,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 21 , 9 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,22,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 21 , 10 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,9,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 21 , 11 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,31,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 21 , 12 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :1,39,64
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 22 , 0 ) =>123,456 
+Format           :(#,##0_);(#,##0)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 22 , 1 ) =>-123,456
+Format           :(#,##0_);(#,##0)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 22 , 2 ) =>0 
+Format           :(#,##0_);(#,##0)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 22 , 3 ) =>abc
+Format           :(#,##0_);(#,##0)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 22 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :7,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 22 , 5 ) =>9
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 23 , 0 ) =>123,456 
+Format           :(#,##0_);[RED](#,##0)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 23 , 1 ) =>-123,456
+Format           :(#,##0_);[RED](#,##0)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 23 , 2 ) =>0 
+Format           :(#,##0_);[RED](#,##0)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 23 , 3 ) =>abc
+Format           :(#,##0_);[RED](#,##0)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 23 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :8,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 23 , 5 ) =>10
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 24 , 0 ) =>123,456.12
+Format           :(#,##0.00);(#,##0.00)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 24 , 1 ) =>-123,456.12
+Format           :(#,##0.00);(#,##0.00)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 24 , 2 ) =>0.00
+Format           :(#,##0.00);(#,##0.00)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 24 , 3 ) =>abc
+Format           :(#,##0.00);(#,##0.00)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 24 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :9,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 24 , 5 ) =>11
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 25 , 0 ) =>123,456.12
+Format           :(#,##0.00);[RED](#,##0.00)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 25 , 1 ) =>-123,456.12
+Format           :(#,##0.00);[RED](#,##0.00)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 25 , 2 ) =>0.00
+Format           :(#,##0.00);[RED](#,##0.00)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 25 , 3 ) =>abc
+Format           :(#,##0.00);[RED](#,##0.00)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 25 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :10,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 25 , 5 ) =>12
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 26 , 0 ) =>#123,456
+Format           :"\"#,##0;"\"\-#,##0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 26 , 1 ) =>\-123,456
+Format           :"\"#,##0;"\"\-#,##0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 26 , 2 ) =>#0
+Format           :"\"#,##0;"\"\-#,##0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 26 , 3 ) =>abc
+Format           :"\"#,##0;"\"\-#,##0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 26 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :11,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 26 , 5 ) =>13
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 27 , 0 ) =>#123,456
+Format           :"\"#,##0;[Red]"\"\-#,##0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 27 , 1 ) =>\-123,456
+Format           :"\"#,##0;[Red]"\"\-#,##0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 27 , 2 ) =>#0
+Format           :"\"#,##0;[Red]"\"\-#,##0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 27 , 3 ) =>abc
+Format           :"\"#,##0;[Red]"\"\-#,##0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 27 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :12,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 27 , 5 ) =>14
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 28 , 0 ) =>#123,456.12
+Format           :"\"#,##0.00;"\"\-#,##0.00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 28 , 1 ) =>\-123,456.12
+Format           :"\"#,##0.00;"\"\-#,##0.00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 28 , 2 ) =>#0.00
+Format           :"\"#,##0.00;"\"\-#,##0.00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 28 , 3 ) =>abc
+Format           :"\"#,##0.00;"\"\-#,##0.00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 28 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :13,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 28 , 5 ) =>15
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 29 , 0 ) =>#123,456.12
+Format           :"\"#,##0.00;[Red]"\"\-#,##0.00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 29 , 1 ) =>\-123,456.12
+Format           :"\"#,##0.00;[Red]"\"\-#,##0.00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 29 , 2 ) =>#0.00
+Format           :"\"#,##0.00;[Red]"\"\-#,##0.00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 29 , 3 ) =>abc
+Format           :"\"#,##0.00;[Red]"\"\-#,##0.00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 29 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :14,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 29 , 5 ) =>16
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 30 , 0 ) =>12345612%
+Format           :0%
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 30 , 1 ) =>-12345612%
+Format           :0%
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 30 , 2 ) =>0%
+Format           :0%
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 30 , 3 ) =>abc
+Format           :0%
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 30 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :15,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 30 , 5 ) =>17
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 30 , 6 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :15,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 31 , 0 ) =>12345612.00%
+Format           :0.00%
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 31 , 1 ) =>-12345612.00%
+Format           :0.00%
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 31 , 2 ) =>0.00%
+Format           :0.00%
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 31 , 3 ) =>abc
+Format           :0.00%
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 31 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :16,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 31 , 5 ) =>18
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 31 , 6 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :16,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 32 , 0 ) =>1.23E+05
+Format           :0.00E+00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 32 , 1 ) =>-1.23E+05
+Format           :0.00E+00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 32 , 2 ) =>0.00E+00
+Format           :0.00E+00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 32 , 3 ) =>abc
+Format           :0.00E+00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 33 , 0 ) =>123.5E+3
+Format           :##0.0E+0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 33 , 1 ) =>-123.5E+3
+Format           :##0.0E+0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 33 , 2 ) =>0.0E+0
+Format           :##0.0E+0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 33 , 3 ) =>abc
+Format           :##0.0E+0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 33 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :4,9,7,11
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 33 , 6 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :1,13,3,12
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 33 , 8 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :10,2,13,8
+BdrColor         :64,64,64,64
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 33 , 10 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :6,0,5,0
+BdrColor         :64,0,64,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 34 , 0 ) =>123456 1/8
+Format           :# ?/?
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 34 , 1 ) =>-123456 1/8
+Format           :# ?/?
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 34 , 2 ) =>0 
+Format           :# ?/?
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 34 , 3 ) =>abc
+Format           :# ?/?
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 35 , 0 ) =>123456 3/25
+Format           :# ??/??
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 35 , 1 ) =>-123456 3/25
+Format           :# ??/??
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 35 , 2 ) =>0 
+Format           :# ??/??
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 35 , 3 ) =>abc
+Format           :# ??/??
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 35 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :5,5,5,5
+BdrColor         :60,60,8,60
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 35 , 6 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :5,5,5,5
+BdrColor         :18,62,56,63
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 35 , 8 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :5,5,5,5
+BdrColor         :53,17,16,19
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 35 , 10 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :5,5,5,5
+BdrColor         :12,23,21,54
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 36 , 0 ) =>$123,456 
+Format           :\$#,##0_);\(\$#,##0\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 36 , 1 ) =>($-123,456)
+Format           :\$#,##0_);\(\$#,##0\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 36 , 2 ) =>$0 
+Format           :\$#,##0_);\(\$#,##0\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 36 , 3 ) =>abc
+Format           :\$#,##0_);\(\$#,##0\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 37 , 0 ) =>$123,456 
+Format           :\$#,##0_);[Red]\(\$#,##0\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 37 , 1 ) =>($-123,456)
+Format           :\$#,##0_);[Red]\(\$#,##0\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 37 , 2 ) =>$0 
+Format           :\$#,##0_);[Red]\(\$#,##0\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 37 , 3 ) =>abc
+Format           :\$#,##0_);[Red]\(\$#,##0\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 37 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :5,5,5,5
+BdrColor         :52,57,10,50
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 37 , 6 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :5,5,5,5
+BdrColor         :48,55,49,20
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 37 , 8 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :5,5,5,5
+BdrColor         :51,11,14,13
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 37 , 10 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :5,5,5,5
+BdrColor         :40,22,15,61
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 38 , 0 ) =>$123,456.12 
+Format           :\$#,##0.00_);\(\$#,##0.00\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 38 , 1 ) =>($-123,456.12)
+Format           :\$#,##0.00_);\(\$#,##0.00\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 38 , 2 ) =>$0.00 
+Format           :\$#,##0.00_);\(\$#,##0.00\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 38 , 3 ) =>abc
+Format           :\$#,##0.00_);\(\$#,##0.00\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 39 , 0 ) =>$123,456.12 
+Format           :\$#,##0.00_);[Red]\(\$#,##0.00\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 39 , 1 ) =>($-123,456.12)
+Format           :\$#,##0.00_);[Red]\(\$#,##0.00\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 39 , 2 ) =>$0.00 
+Format           :\$#,##0.00_);[Red]\(\$#,##0.00\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 39 , 3 ) =>abc
+Format           :\$#,##0.00_);[Red]\(\$#,##0.00\)
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 40 , 0 ) =>23459
+Format           :0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 40 , 1 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 40 , 2 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 40 , 3 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 40 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :5,5,5,5
+BdrColor         :47,42,45,43
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 40 , 6 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :5,5,5,5
+BdrColor         :18,62,56,63
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 40 , 8 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :5,5,5,5
+BdrColor         :53,17,16,19
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 40 , 10 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :5,5,5,5
+BdrColor         :12,23,21,54
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 41 , 0 ) =>Mar-64
+Format           :mmm-yy
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 42 , 0 ) =>Mar-64
+Format           :mmm-yy
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 42 , 4 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :5,5,5,5
+BdrColor         :52,57,10,50
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 42 , 6 ) =>
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :5,5,5,5
+BdrColor         :44,9,41,46
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 43 , 0 ) =>Mar-64
+Format           :mmm-yy
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 44 , 0 ) =>Mar-64
+Format           :mmm-yy
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 45 , 0 ) =>23459
+Format           :0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 46 , 0 ) =>23-Mar-64
+Format           :d-mmm-yy
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 47 , 0 ) =>23-Mar
+Format           :d-mmm
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 48 , 0 ) =>Mar-64
+Format           :mmm-yy
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 49 , 0 ) =>1:00 AM/PM
+Format           :h:mm AM/PM
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 50 , 0 ) =>1:00:00 AM/PM
+Format           :h:mm:ss AM/PM
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 51 , 0 ) =>1:00
+Format           :h:mm
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 52 , 0 ) =>1:00:00
+Format           :h:mm:ss
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 53 , 0 ) =>1:00:00
+Format           :h:mm:ss
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 54 , 0 ) =>1:00:00
+Format           :h:mm:ss
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 55 , 0 ) =>3-28-64 1:00
+Format           :m-d-yy h:mm
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 56 , 0 ) =>00:00
+Format           :mm:ss
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 57 , 0 ) =>00:00.0
+Format           :mm:ss.0
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 58 , 0 ) =>23464.0416666667
+Format           :@
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 59 , 0 ) =>563137:00:00
+Format           :[h]:mm:ss
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 60 , 0 ) =>23,464  
+Format           :#,##0_ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 61 , 0 ) =>1964/3/28 1:00 AM/PM
+Format           :yyyy/m/d\ h:mm\ AM/PM
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 62 , 0 ) =>3/28
+Format           :m/d
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 63 , 0 ) =>28-Mar-64
+Format           :dd\-mmm\-yy
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 64 , 0 ) =>23464  
+Format           :0_ ;[Red]\-0\ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 65 , 0 ) =>--2346 
+Format           :0_ ;[Red]\-0\ 
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 66 , 0 ) =>234-64
+Format           :[<=999]000;000\-00
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 67 , 0 ) =>2-3464
+Format           :[<=99999999]####\-####;\(00\)\ ####\-####
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+------------------------------------------------------
+( 68 , 0 ) =>2-3464
+Format           :[<=99999999]####\-####;\(00\)\ ####\-####
+AlignH           :0
+AlignV           :2
+Indent           :0
+Wrap             :0
+Shrink           :0
+Merged           :No
+Rotate           :0
+Name             :Century
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+BdrStyle         :0,0,0,0
+BdrColor         :0,0,0,0
+BdrDiag          :0,0,0
+Pattern          :0,64,65
+Lock             :1
+Hidden           :0
+--------- SHEET:Format(Print)
+>> Print Setting
+Landscape        :1
+Scale            :90
+FitWidth         :2
+FitHeight        :3
+PageFit          :0
+PaperSize        :9
+PageStart        :2
+UsePage          :0
+>> Format
+Mergin Left      :6
+       Right     :5
+       Top       :4
+       Bottom    :3
+       Header    :2
+       Footer    :1
+Horizontal Center:1
+Vertical Center  :0
+Header           :&CHeader Center
+Footer           :&RLeft Footer
+Print Area       :
+  Area            :0,0,29,4
+  Area            :0,6,43,11
+Print Title      :
+          Row    :
+>>               :0,1
+          Column :
+>>               :1,2
+Print Gridlines  :0
+Print Headings   :0
+NoColor          :1
+Draft            :1
+Notes            :1
+LeftToRight      :0
+Horizontal PageBreak :4,4,10
+Vertical   PageBreak :2,3,5

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_oem
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_oem	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_oem	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,26 @@
+=========================================
+FILE  :Excel/oem.xls
+COUNT :1
+AUTHOR:kawait
+--------- SHEET:Sheet1
+ROW HEIGHT:13.5
+( 0 , 0 ) =>ʸ»ú²½¤±¤¹¤ë¥·¥ê¡¼¥º
+ROW HEIGHT:13.5
+( 1 , 0 ) =>¢® ¥í¡¼¥Þ»ú¤Î£±
+ROW HEIGHT:13.5
+( 2 , 0 ) =>¢®
+ROW HEIGHT:13.5
+( 3 , 0 ) =>¢®¤Ê¤ó¤Æ¤Ê¤â¤Î¤â²½¤±¤ë
+=========================================
+FILE  :Excel/oem.xls
+COUNT :1
+AUTHOR:kawait
+--------- SHEET:Sheet1
+ROW HEIGHT:13.5
+( 0 , 0 ) =>ʸ»ú²½¤±¤¹¤ë¥·¥ê¡¼¥º
+ROW HEIGHT:13.5
+( 1 , 0 ) =>­µ ¥í¡¼¥Þ»ú¤Î£±
+ROW HEIGHT:13.5
+( 2 , 0 ) =>­ê
+ROW HEIGHT:13.5
+( 3 , 0 ) =>¡Á¤Ê¤ó¤Æ¤Ê¤â¤Î¤â²½¤±¤ë

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_rich
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_rich	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_rich	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,68 @@
+=========================================
+FILE  :Excel/Rich.xls
+COUNT :1
+AUTHOR:kawait
+--------- SHEET:Sheet1
+( 0 , 0 ) =>example 
+( 1 , 0 ) =>example 
+--------------------------------------------
+POS              :1
+Name             :Times New Roman
+Bold             :0
+Italic           :0
+Height           :18
+Underline        :0
+UnderlineStyle   :00
+Color            :13
+Color RGB        :FFFF00
+Strikeout        :0
+Super            :0
+--------------------------------------------
+POS              :2
+Name             :Times New Roman
+Bold             :0
+Italic           :0
+Height           :16
+Underline        :1
+UnderlineStyle   :01
+Color            :12
+Color RGB        :0000FF
+Strikeout        :0
+Super            :0
+--------------------------------------------
+POS              :3
+Name             :Times New Roman
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :17
+Color RGB        :008000
+Strikeout        :0
+Super            :0
+--------------------------------------------
+POS              :4
+Name             :Times New Roman
+Bold             :1
+Italic           :1
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :14
+Color RGB        :FF00FF
+Strikeout        :0
+Super            :0
+--------------------------------------------
+POS              :5
+Name             :Times New Roman
+Bold             :0
+Italic           :0
+Height           :11
+Underline        :0
+UnderlineStyle   :00
+Color            :32767
+Color RGB        :000000
+Strikeout        :0
+Super            :0
+( 2 , 0 ) =>

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_sample
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_sample	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_sample	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,91 @@
+=========================================
+FILE  :Excel/Test97.xls
+COUNT :2
+AUTHOR:kawait
+--------- SHEET:Sheet1-ASC
+( 0 , 0 ) =>KABA:ASC
+( 0 , 1 ) =>This Data is 'ASC Only'
+( 1 , 0 ) =>Date
+( 1 , 1 ) =>3-23-64
+( 2 , 0 ) =>INTEGER
+( 2 , 1 ) =>12345
+( 3 , 0 ) =>Float
+( 3 , 1 ) =>1.29
+( 4 , 0 ) =>Double
+( 4 , 1 ) =>1234567.89012345
+( 5 , 0 ) =>Formula
+( 5 , 1 ) =>1246912.89012345
+( 6 , 0 ) =>Data
+( 6 , 1 ) =>1234567.89
+( 7 , 0 ) =>BIG INTEGER
+( 7 , 1 ) =>123456789012
+--------- SHEET:Sheet2
+( 0 , 0 ) =>This is Sheet2
+=========================================
+FILE  :Excel/Test95.xls
+COUNT :2
+AUTHOR:kawait
+--------- SHEET:Sheet1-ASC
+( 0 , 0 ) =>ASC
+( 0 , 1 ) =>This Data is 'ASC Only'
+( 1 , 0 ) =>Date
+( 1 , 1 ) =>3-23-64
+( 2 , 0 ) =>INTEGER
+( 2 , 1 ) =>12345
+( 3 , 0 ) =>Float
+( 3 , 1 ) =>1.29
+( 4 , 0 ) =>Double
+( 4 , 1 ) =>1234567.89012345
+( 5 , 0 ) =>Formula
+( 5 , 1 ) =>1246912.89012345
+( 6 , 0 ) =>BIG NUM
+( 6 , 1 ) =>123456789.01
+( 7 , 0 ) =>BIG INTEGER
+( 7 , 1 ) =>12345678901
+--------- SHEET:Sheet1-ASC (2)
+( 0 , 0 ) =>ASC
+( 0 , 1 ) =>This Data is 'ASC Only'
+( 1 , 0 ) =>Date
+( 1 , 1 ) =>3-23-64
+( 2 , 0 ) =>INTEGER
+( 2 , 1 ) =>12345
+( 3 , 0 ) =>Float
+( 3 , 1 ) =>1.29
+( 4 , 0 ) =>Double
+( 4 , 1 ) =>1234567.89012345
+( 5 , 0 ) =>Formula
+( 5 , 1 ) =>1246912.89012345
+=========================================
+FILE  :Excel/Test1904.xls
+COUNT :1
+AUTHOR:kawait
+--------- SHEET:Sheet1-ASC
+( 0 , 0 ) =>ASC
+( 0 , 1 ) =>This Data is 'ASC Only'
+( 1 , 0 ) =>Date
+( 1 , 1 ) =>3-23-64
+( 2 , 0 ) =>INTEGER
+( 2 , 1 ) =>12345
+( 3 , 0 ) =>Float
+( 3 , 1 ) =>1.29
+( 4 , 0 ) =>Double
+( 4 , 1 ) =>1234567.89012345
+( 5 , 0 ) =>Formula
+( 5 , 1 ) =>1246912.89012345
+=========================================
+FILE  :Excel/Test1904_95.xls
+COUNT :1
+AUTHOR:kawait
+--------- SHEET:Sheet1-ASC
+( 0 , 0 ) =>ASC
+( 0 , 1 ) =>This Data is 'ASC Only'
+( 1 , 0 ) =>Date
+( 1 , 1 ) =>3-23-64
+( 2 , 0 ) =>INTEGER
+( 2 , 1 ) =>12345
+( 3 , 0 ) =>Float
+( 3 , 1 ) =>1.29
+( 4 , 0 ) =>Double
+( 4 , 1 ) =>1234567.89012345
+( 5 , 0 ) =>Formula
+( 5 , 1 ) =>1246912.89012345

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_samplej
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_samplej	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/res_samplej	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,122 @@
+=========================================
+FILE  :Excel/Test97J.xls
+COUNT :2
+AUTHOR:kawait
+--------- SHEET:Sheet1-ASC
+( 0 , 0 ) =>ASC
+( 0 , 1 ) =>This Data is 'ASC Only'
+( 1 , 0 ) =>Date
+( 1 , 1 ) =>1964/3/23
+( 2 , 0 ) =>INTEGER
+( 2 , 1 ) =>12345
+( 3 , 0 ) =>Float
+( 3 , 1 ) =>1.29
+( 4 , 0 ) =>Double
+( 4 , 1 ) =>1234567.89012345
+( 5 , 0 ) =>Formula
+( 5 , 1 ) =>1246912.89012345
+( 6 , 0 ) =>Data
+( 6 , 1 ) =>1234567.89
+( 7 , 0 ) =>BIG INTEGER
+( 7 , 1 ) =>123456789012
+--------- SHEET:´Á»ú̾
+( 0 , 0 ) =>ASC
+( 0 , 1 ) =>This Data is 'ASC Only'
+( 1 , 0 ) =>´Á»ú¤âÆþ¤ë
+( 1 , 1 ) =>´Á»ú¤Î¥Ç¡¼¥¿
+( 2 , 0 ) =>Date
+( 2 , 1 ) =>1964/3/23
+( 3 , 0 ) =>INTEGER
+( 3 , 1 ) =>12345
+( 4 , 0 ) =>Float
+( 4 , 1 ) =>1.29
+( 5 , 0 ) =>Double
+( 5 , 1 ) =>1234567.89012345
+( 6 , 0 ) =>Formula
+( 6 , 1 ) =>1246912.89012345
+( 7 , 0 ) =>½ñ¼°¤Ë´Á»ú:Float
+=========================================
+FILE  :Excel/Test95J.xls
+COUNT :2
+AUTHOR:kawait
+--------- SHEET:Sheet1-ASC
+( 0 , 0 ) =>ASC
+( 0 , 1 ) =>This Data is 'ASC Only'
+( 1 , 0 ) =>Date
+( 1 , 1 ) =>1964/3/23
+( 2 , 0 ) =>INTEGER
+( 2 , 1 ) =>12345
+( 3 , 0 ) =>Float
+( 3 , 1 ) =>1.29
+( 4 , 0 ) =>Double
+( 4 , 1 ) =>1234567.89012345
+( 5 , 0 ) =>Formula
+( 5 , 1 ) =>1246912.89012345
+--------- SHEET:´Á»ú̾
+( 0 , 0 ) =>ASC
+( 0 , 1 ) =>This Data is 'ASC Only'
+( 1 , 0 ) =>´Á»ú¤âÆþ¤ë
+( 1 , 1 ) =>´Á»ú¤Î¥Ç¡¼¥¿
+( 2 , 0 ) =>Date
+( 2 , 1 ) =>1964/3/23
+( 3 , 0 ) =>INTEGER
+( 3 , 1 ) =>12345
+( 4 , 0 ) =>Float
+( 4 , 1 ) =>1.29
+( 5 , 0 ) =>Double
+( 5 , 1 ) =>1234567.89012345
+( 6 , 0 ) =>Formula
+( 6 , 1 ) =>1246912.89012345
+( 7 , 0 ) =>½ñ¼°¤Ë´Á»ú:Float
+=========================================
+FILE  :Excel/Test1904.xls
+COUNT :1
+AUTHOR:kawait
+--------- SHEET:Sheet1-ASC
+( 0 , 0 ) =>ASC
+( 0 , 1 ) =>This Data is 'ASC Only'
+( 1 , 0 ) =>Date
+( 1 , 1 ) =>1964/3/23
+( 2 , 0 ) =>INTEGER
+( 2 , 1 ) =>12345
+( 3 , 0 ) =>Float
+( 3 , 1 ) =>1.29
+( 4 , 0 ) =>Double
+( 4 , 1 ) =>1234567.89012345
+( 5 , 0 ) =>Formula
+( 5 , 1 ) =>1246912.89012345
+=========================================
+FILE  :Excel/Test1904_95.xls
+COUNT :1
+AUTHOR:kawait
+--------- SHEET:Sheet1-ASC
+( 0 , 0 ) =>ASC
+( 0 , 1 ) =>This Data is 'ASC Only'
+( 1 , 0 ) =>Date
+( 1 , 1 ) =>1964/3/23
+( 2 , 0 ) =>INTEGER
+( 2 , 1 ) =>12345
+( 3 , 0 ) =>Float
+( 3 , 1 ) =>1.29
+( 4 , 0 ) =>Double
+( 4 , 1 ) =>1234567.89012345
+( 5 , 0 ) =>Formula
+( 5 , 1 ) =>1246912.89012345
+=========================================
+FILE  :Excel/AuthorK.xls
+COUNT :3
+AUTHOR:kawait
+--------- SHEET:Sheet1
+( 0 , 0 ) =>´Á»ú̾¤Î¥Æ¥¹¥È
+( 0 , 1 ) =>´Á»ú¥Ç¡¼¥¿¤Ï¤É¤¦¤Ê¤ë¡©
+--------- SHEET:Sheet2
+--------- SHEET:Sheet3
+=========================================
+FILE  :Excel/AuthorK95.xls
+COUNT :3
+AUTHOR:kawait
+--------- SHEET:Sheet1
+( 0 , 0 ) =>´Á»ú̾¤Î¥Æ¥¹¥È
+( 0 , 1 ) =>´Á»ú¥Ç¡¼¥¿¤Ï¤É¤¦¤Ê¤ë¡©
+--------- SHEET:Sheet2
+--------- SHEET:Sheet3

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/sample.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/sample.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/sample.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,44 @@
+use lib qw(../);
+use strict;
+use Spreadsheet::ParseExcel;
+my $oExcel = new Spreadsheet::ParseExcel;
+sub PrnBook($);
+
+#1.1 Normal Excel97
+my $oBook = $oExcel->Parse('Excel/Test97.xls');
+PrnBook($oBook);
+
+#1.2 Normal Excel95
+$oBook = $oExcel->Parse('Excel/Test95.xls');
+PrnBook($oBook);
+
+#1.3 Year 1904 Base (Excel97)
+$oBook = $oExcel->Parse('Excel/Test1904.xls');
+PrnBook($oBook);
+
+#1.4 Year 1904 Base (Excel95)
+$oBook = $oExcel->Parse('Excel/Test1904_95.xls');
+PrnBook($oBook);
+
+sub PrnBook($)
+{
+    my($oBook) = @_;
+    my($iR, $iC, $oWkS, $oWkC);
+
+    print "=========================================\n";
+    print "FILE  :", $oBook->{File} , "\n";
+    print "COUNT :", $oBook->{SheetCount} , "\n";
+    print "AUTHOR:", $oBook->{Author} , "\n";
+    for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
+        $oWkS = $oBook->{Worksheet}[$iSheet];
+        print "--------- SHEET:", $oWkS->{Name}, "\n";
+        for(my $iR = $oWkS->{MinRow} ; 
+                defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
+            for(my $iC = $oWkS->{MinCol} ;
+                            defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
+                $oWkC = $oWkS->{Cells}[$iR][$iC];
+                print "( $iR , $iC ) =>", $oWkC->Value, "\n" if($oWkC);
+            }
+        }
+    }
+}

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/sampleOEM.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/sampleOEM.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/sampleOEM.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,35 @@
+use strict;
+use Spreadsheet::ParseExcel;
+use Spreadsheet::ParseExcel::FmtJapan;
+use Spreadsheet::ParseExcel::FmtJapan2;
+sub PrnAll($);
+
+my $oExcel = new Spreadsheet::ParseExcel;
+my $oFmtJ = Spreadsheet::ParseExcel::FmtJapan->new(Code => 'euc');
+my $oFmtJ2 = Spreadsheet::ParseExcel::FmtJapan2->new(Code => 'euc');
+my $oBook = $oExcel->Parse('Excel/oem.xls', $oFmtJ);
+PrnAll($oBook);
+$oBook = $oExcel->Parse('Excel/oem.xls', $oFmtJ2);
+PrnAll($oBook);
+
+sub PrnAll($) {
+    my ($oBook) = @_;
+    my($iR, $iC, $oWkS, $oWkC);
+    print "=========================================\n";
+    print "FILE  :", $oBook->{File} , "\n";
+    print "COUNT :", $oBook->{SheetCount} , "\n";
+    print "AUTHOR:", $oBook->{Author} , "\n";
+    for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
+        $oWkS = $oBook->{Worksheet}[$iSheet];
+        print "--------- SHEET:", $oWkS->{Name}, "\n";
+        for(my $iR = $oWkS->{MinRow} ; 
+            defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
+            print "ROW HEIGHT:", $oWkS->{RowHeight}[$iR], "\n";
+            for(my $iC = $oWkS->{MinCol} ;
+                        defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
+                $oWkC = $oWkS->{Cells}[$iR][$iC];
+                print "( $iR , $iC ) =>", $oWkC->Value, "\n" if($oWkC);
+            }
+        }
+    }
+}

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/sample_j.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/sample_j.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/sample_j.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,61 @@
+use strict;
+use Spreadsheet::ParseExcel;
+use Spreadsheet::ParseExcel::FmtJapan;
+sub PrnBook($);
+#0. Check ARGV
+if(($#ARGV< 0) or 
+   (grep($ARGV[0] eq $_, ('euc', 'sjis', 'jis')) <= 0)) {
+    print "USAGE: \n   > perl ", $0, " euc|sjis|jis\n";
+    exit;
+}
+my $oExcel = new Spreadsheet::ParseExcel;
+
+#1. Make Formatter
+my $oFmtJ = Spreadsheet::ParseExcel::FmtJapan->new(Code => $ARGV[0]);
+
+#2.1 Test97
+my $oBook = $oExcel->Parse('Excel/Test97J.xls', $oFmtJ);
+PrnBook($oBook);
+
+#2.2 Test95
+$oBook = $oExcel->Parse('Excel/Test95J.xls', $oFmtJ);
+PrnBook($oBook);
+
+#2.3 1904 (1904 - 97)
+$oBook = $oExcel->Parse('Excel/Test1904.xls', $oFmtJ);
+PrnBook($oBook);
+
+#2.4 1904 (1904 - 95)
+$oBook = $oExcel->Parse('Excel/Test1904_95.xls', $oFmtJ);
+PrnBook($oBook);
+
+#2.5 1904 (1904 - 95)
+$oBook = $oExcel->Parse('Excel/AuthorK.xls', $oFmtJ);
+PrnBook($oBook);
+
+#2.6 1904 (1904 - 95)
+$oBook = $oExcel->Parse('Excel/AuthorK95.xls', $oFmtJ);
+PrnBook($oBook);
+
+sub PrnBook($)
+{
+    my($oBook) = @_;
+    my($iR, $iC, $oWkS, $oWkC);
+
+    print "=========================================\n";
+    print "FILE  :", $oBook->{File} , "\n";
+    print "COUNT :", $oBook->{SheetCount} , "\n";
+    print "AUTHOR:", $oBook->{Author} , "\n";
+    for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
+        $oWkS = $oBook->{Worksheet}[$iSheet];
+        print "--------- SHEET:", $oWkS->{Name}, "\n";
+        for(my $iR = $oWkS->{MinRow} ; 
+                defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
+            for(my $iC = $oWkS->{MinCol} ;
+                            defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
+                $oWkC = $oWkS->{Cells}[$iR][$iC];
+                print "( $iR , $iC ) =>", $oWkC->Value, "\n" if($oWkC);
+            }
+        }
+    }
+}

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/smpFile.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/smpFile.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/smpFile.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,37 @@
+use lib qw(../);
+use strict;
+use Spreadsheet::ParseExcel;
+my $oExcel = new Spreadsheet::ParseExcel;
+sub PrnBook($);
+
+#1.2 Normal Excel97
+open(IN, 'Excel/Test97.xls');
+binmode IN;
+my $sWk;
+read(IN, $sWk, 2000000);
+close IN;
+my $oBook1 = $oExcel->Parse([$sWk]);
+PrnBook($oBook1);
+
+sub PrnBook($)
+{
+    my($oBook) = @_;
+    my($iR, $iC, $oWkS, $oWkC);
+
+    print "=========================================\n";
+    print "FILE  :", $oBook->{File} , "\n";
+    print "COUNT :", $oBook->{SheetCount} , "\n";
+    print "AUTHOR:", $oBook->{Author} , "\n";
+    for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
+        $oWkS = $oBook->{Worksheet}[$iSheet];
+        print "--------- SHEET:", $oWkS->{Name}, "\n";
+        for(my $iR = $oWkS->{MinRow} ; 
+                defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
+            for(my $iC = $oWkS->{MinCol} ;
+                            defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
+                $oWkC = $oWkS->{Cells}[$iR][$iC];
+                print "( $iR , $iC ) =>", $oWkC->Value, "\n" if($oWkC);
+            }
+        }
+    }
+}

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/xls2csv.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/xls2csv.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/sample/xls2csv.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,55 @@
+#!/usr/bin/perl -w
+# script to extract a range of colums/rows from an excel spreadsheet
+# and present it as a csv, there is also the option to rotate the
+# output, 
+#
+# (c) kevin Mulholland 2002, kevin at moodfarm.demon.co.uk
+# this code is released under the Perl Artistic License
+use strict ;
+use Spreadsheet::ParseExcel;
+use Spreadsheet::ParseExcel::Utility qw(xls2csv);
+
+if(!(defined $ARGV[0])) {
+	usage( "Bad Args") ;
+	exit;
+}
+
+my $rotate = 0 ;
+my $filename = $ARGV[0] ;
+my $coords = $ARGV[1] ;
+
+$rotate = 1 if( defined $ARGV[2] && $ARGV[2] eq "-rotate") ;
+
+if( !$coords) {
+   usage( "No co-ordinates defined") ;
+   exit ;
+}
+
+if( ! -f $filename) {
+   usage( "File $filename does not exist") ;
+   exit ;
+}
+
+printf xls2csv( $filename, $coords, $rotate) ;
+
+# -----------------------------------------------------------------------------
+### error
+# writes a message to STDERR
+#
+sub error {
+   printf STDERR shift ;
+}
+# -----------------------------------------------------------------------------
+### usage
+# this decribes how the program as a whole is to be used
+#
+sub usage {
+	my $errmsg = shift ;
+
+	error( "\n" . $errmsg . "\n") if( $errmsg) ;
+
+	error( "
+Usage: $0 filename sheet-colrow:colrow [-rotate]
+   eg: $0 filename.xls 1-A1:B12
+       $0 filename.xls A1:M1 -rotate\n\n") ;
+}

Added: packages/libspreadsheet-parseexcel-perl/branches/upstream/current/test.pl
===================================================================
--- packages/libspreadsheet-parseexcel-perl/branches/upstream/current/test.pl	2005-01-25 02:10:47 UTC (rev 660)
+++ packages/libspreadsheet-parseexcel-perl/branches/upstream/current/test.pl	2005-01-25 15:06:55 UTC (rev 661)
@@ -0,0 +1,20 @@
+# Before `make install' is performed this script should be runnable with
+# `make test'. After `make install' it should work as `perl test.pl'
+
+######################### We start with some black magic to print on failure.
+
+# Change 1..1 below to 1..last_test_to_print .
+# (It may become useful if the test is moved to ./t subdirectory.)
+
+BEGIN { $| = 1; print "1..1\n"; }
+END {print "not ok 1\n" unless $loaded;}
+use Spreadsheet::ParseExcel;
+$loaded = 1;
+print "ok 1\n";
+
+######################### End of black magic.
+
+# Insert your test code below (better if it prints "ok 13"
+# (correspondingly "not ok 13") depending on the success of chunk 13
+# of the test code):
+




More information about the Pkg-perl-cvs-commits mailing list