r951 - in
packages/libspreadsheet-writeexcel-perl/branches/upstream/current:
. charts doc examples lib/Spreadsheet lib/Spreadsheet/WriteExcel t
Gunnar Wolf
gwolf at costa.debian.org
Sun Jul 17 08:09:12 UTC 2005
Author: gwolf
Date: 2005-04-23 00:22:10 +0000 (Sat, 23 Apr 2005)
New Revision: 951
Added:
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/examples/hide_sheet.pl
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/01_merge_formats.t
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/11_date_time.t
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/12_date_only.t
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/13_date_seconds.t
Removed:
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/exe/
Modified:
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/Changes
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/MANIFEST
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/META.yml
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/Makefile.PL
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/charts/README
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/charts/chartex.pl
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/doc/WriteExcel.html
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/examples/README
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel.pm
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Chart.pm
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Format.pm
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Workbook.pm
packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Worksheet.pm
Log:
Load /tmp/tmp.ep9AoA/libspreadsheet-writeexcel-perl-2.13 into
packages/libspreadsheet-writeexcel-perl/branches/upstream/current.
Modified: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/Changes
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/Changes 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/Changes 2005-04-23 00:22:10 UTC (rev 951)
@@ -1,5 +1,17 @@
Revision history for Perl module Spreadsheet::WriteExcel.
+2.13 April 20 2005 - Minor
+
+ ! Made it a fatal error to use a merged format in a non-
+ merged cell (and vice-versa). This is a temporary measure
+ to prevent people from shooting themselves in the foot
+ until the Format.pm code can be refactored.
+
+ + Add 01_merge_formats.t test for above.
+
+ + Added date_time tests.
+
+
2.12 March 22 2005 - Minor
+ Added further Unicode support. The following methods now
Modified: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/MANIFEST
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/MANIFEST 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/MANIFEST 2005-04-23 00:22:10 UTC (rev 951)
@@ -20,6 +20,10 @@
t/00_IEEE_double.t
t/01_add_worksheet.t
+t/01_merge_formats.t
+t/11_date_time.t
+t/12_date_only.t
+t/13_date_seconds.t
doc/index.html
doc/WriteExcel.html
@@ -63,6 +67,7 @@
examples/formats.pl
examples/function_locale.pl
examples/headers.pl
+examples/hide_sheet.pl
examples/hyperlink1.pl
examples/hyperlink2.pl
examples/images.pl
@@ -131,4 +136,4 @@
charts/Chart2.xls
charts/Chart3.xls
-exe/chartex
+bin/chartex
Modified: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/META.yml
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/META.yml 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/META.yml 2005-04-23 00:22:10 UTC (rev 951)
@@ -1,10 +1,10 @@
-name: Spreadsheet-WriteExcel
-version: 2.12
-version_from: lib/Spreadsheet/WriteExcel.pm
-installdirs: site
+name: Spreadsheet-WriteExcel
+version: 2.13
+version_from: lib/Spreadsheet/WriteExcel.pm
+installdirs: site
requires:
File::Temp: 0
Parse::RecDescent: 0
-distribution_type: module
-generated_by: hand
+distribution_type: module
+generated_by: hand
Modified: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/Makefile.PL
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/Makefile.PL 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/Makefile.PL 2005-04-23 00:22:10 UTC (rev 951)
@@ -13,5 +13,5 @@
'NEEDS_LINKING' => 0,
'PREREQ_PM' => {Parse::RecDescent => 0, File::Temp => 0},
'dist' => {COMPRESS => 'gzip -best', SUFFIX => 'gz'},
- 'EXE_FILES' => ['exe/chartex'],
+ 'EXE_FILES' => ['bin/chartex'],
);
Modified: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/charts/README
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/charts/README 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/charts/README 2005-04-23 00:22:10 UTC (rev 951)
@@ -18,8 +18,8 @@
Chart3.xls A template for use with demo3.pl.
* If you performed a normal installation then the chartex utility
- should be installed to your C<perl/bin> directory and should be
- available from the command line.
+ should be installed to your 'somepath/perl/bin' directory and
+ should be available from the command line.
You can run the examples as follows:
Modified: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/charts/chartex.pl
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/charts/chartex.pl 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/charts/chartex.pl 2005-04-23 00:22:10 UTC (rev 951)
@@ -148,7 +148,7 @@
$range = "'$range'" if $range =~ /[^\w:]/;
- print " \$worksheet->store_formula(\"=$range!A1\");\n";
+ print " \$worksheet->store_formula('=$range!A1');\n";
}
Modified: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/doc/WriteExcel.html
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/doc/WriteExcel.html 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/doc/WriteExcel.html 2005-04-23 00:22:10 UTC (rev 951)
@@ -215,8 +215,8 @@
<HR>
<H1><A NAME="VERSION">VERSION</A></H1>
<P>
-This document refers to version 2.12 of Spreadsheet::WriteExcel, released
-March 22, 2005.
+This document refers to version 2.13 of Spreadsheet::WriteExcel, released
+April 20, 2005.
</P>
<P>
@@ -1118,7 +1118,7 @@
</PRE>
</P>
<P>
-The "looks like" rule is defined by regular expressions:
+The "looks like" rule is defined by regular expressions:
</P>
<P>
@@ -3153,7 +3153,9 @@
</P>
<P>
<STRONG>WARNING</STRONG>. The format object that is used with a <CODE>merge_range()</CODE> method call is marked internally as being associated with a merged range.
-As such, <STRONG>it should not be used for other formatting</STRONG>. This will be fixed in a later version. See the <A HREF="#BUGS">BUGS</A> section.
+It is a fatal error to use a merged format in a non-merged cell. Instead
+you should use separate formats for merged and non-merged cells. This
+restriction will be removed in a future release.
</P>
<P>
@@ -6290,6 +6292,7 @@
outline.pl An example of outlines and grouping.
panes.pl An examples of how to create panes.
protection.pl Example of cell locking and formula hiding.
+ hide_sheet.pl Simple example of hiding a worksheet.
repeat.pl Example of writing repeated formulas.
sales.pl An example of a simple sales spreadsheet.
sendmail.pl Send an Excel email attachment using Mail::Sender.
@@ -6854,10 +6857,10 @@
</P>
<P>
-The format object that is used with a <CODE>merge_range()</CODE> method call is marked internally as being associated with a merged range.If
-you use this format in a non-merged cell it will cause Excel to crash. The
-current workaround is to use separate formats for merged and non-merged
-cell. This will be fixed in a future release.
+The format object that is used with a <CODE>merge_range()</CODE> method call is marked internally as being associated with a merged range.It
+is a fatal error to use a merged format in a non-merged cell. The current
+workaround is to use separate formats for merged and non-merged cell. This
+restriction will be removed in a future release.
</P>
<P>
@@ -6910,7 +6913,7 @@
<UL>
<LI><A NAME="item_Macros">Macros.</A>
<P>
-This would solve the previous problem neatly. However, the format of Excel
+This would solve some other problems neatly. However, the format of Excel
macros isn't documented.
</P>
@@ -6958,12 +6961,6 @@
</td></tr>
</table>
-
-
-
-
-
-</P>
<P>
Alternatively you can keep up to date with future releases by subscribing
at: <A
@@ -7047,14 +7044,14 @@
<P>
Alexander Farber, Andre de Bruin, Arthur at ais, Artur Silveira da Cunha,
Borgar Olsen, Brian White, Bob Mackay, Cedric Bouvier, Chad Johnson, CPAN
-testers, Daniel Berger, Daniel Gardner, Dmitry Kochurov, Eric Frazier,
-Ernesto Baschny, Felipe Pérez Galiana, Gordon Simpson, Hanc Pavel, Harold
-Bamford, James Holmes, James Wilkinson, Johan Ekenberg, Johann Hanne,
-Jonathan Scott Duff, J.C. Wren, Kenneth Stacey, Keith Miller, Kyle Krom,
-Marc Rosenthal, Markus Schmitz, Michael Braig, Michael Buschauer, Mike
-Blazer, Michael Erickson, Michael W J West, Ning Xie, Paul J. Falbe, Paul
-Medynski, Peter Dintelmann, Pierre Laplante, Praveen Kotha, Reto
-Badertscher, Rich Sorden, Shane Ashby, Shenyu Zheng, Stephan Loescher,
+testers, Damyan Ivanov, Daniel Berger, Daniel Gardner, Dmitry Kochurov,
+Eric Frazier, Ernesto Baschny, Felipe Pérez Galiana, Gordon Simpson, Hanc
+Pavel, Harold Bamford, James Holmes, James Wilkinson, Johan Ekenberg,
+Johann Hanne, Jonathan Scott Duff, J.C. Wren, Kenneth Stacey, Keith Miller,
+Kyle Krom, Marc Rosenthal, Markus Schmitz, Michael Braig, Michael
+Buschauer, Mike Blazer, Michael Erickson, Michael W J West, Ning Xie, Paul
+J. Falbe, Paul Medynski, Peter Dintelmann, Pierre Laplante, Praveen Kotha,
+Reto Badertscher, Rich Sorden, Shane Ashby, Shenyu Zheng, Stephan Loescher,
Steve Sapovits, Sven Passig, Svetoslav Marinov, Tamas Gulacsi, Troy
Daniels, Vahe Sarkissian.
@@ -7081,7 +7078,7 @@
</P>
<P>
-Dirk Eddelbuettel maintains the Debian distro.
+Gunnar Wolf maintains the Debian distro.
</P>
<P>
@@ -7105,20 +7102,34 @@
</P>
<P>
<PRE>
- Slow dulcimer, gavotte and bow, in autumn,
- Basho and his friends go out to view the moon;
- In summer, gasoline rainbow in the gutter,
+ Imagine a court of one: the queen a young mother,
+ Unhappy, alone all day with her firstborn child
+ And her new baby in a squalid apartment
</PRE>
</P>
<P>
<PRE>
- The secret courtesy that courses like ichor
- Through the old form of the rude, full-scale joke,
- Impossible to tell in writing.
+ Of too few rooms, a different race from her neighbors.
+ She tells the child she's going to kill herself.
+ She broods, she rages. Hoping to distract her,
</PRE>
</P>
<P>
<PRE>
+ The child cuts capers, he sings, he does imitations
+ Of different people in the building, he jokes,
+ He feels if he keeps her alive until the father
+</PRE>
+</P>
+<P>
+<PRE>
+ Gets home from work, they'll be okay till morning.
+ It's laughter versus the bedroom and the pills.
+ What is he in his efforts but a courtier?
+</PRE>
+</P>
+<P>
+<PRE>
-- Robert Pinsky
</PRE>
</P>
Modified: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/examples/README
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/examples/README 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/examples/README 2005-04-23 00:22:10 UTC (rev 951)
@@ -37,6 +37,7 @@
outline.pl An example of outlines and grouping.
panes.pl An examples of how to create panes.
protection.pl Example of cell locking and formula hiding.
+hide_sheet.pl Simple example of hiding a worksheet.
repeat.pl Example of writing repeated formulas.
sales.pl An example of a simple sales spreadsheet.
sendmail.pl Send an Excel email attachment using Mail::Sender.
Added: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/examples/hide_sheet.pl
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/examples/hide_sheet.pl 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/examples/hide_sheet.pl 2005-04-23 00:22:10 UTC (rev 951)
@@ -0,0 +1,26 @@
+#!/usr/bin/perl -w
+
+#######################################################################
+#
+# Example of how to hide a worksheet with Spreadsheet::WriteExcel.
+#
+# reverse('©'), April 2005, John McNamara, jmcnamara at cpan.org
+#
+
+use strict;
+use Spreadsheet::WriteExcel;
+
+my $workbook = Spreadsheet::WriteExcel->new('hidden.xls');
+my $worksheet1 = $workbook->add_worksheet();
+my $worksheet2 = $workbook->add_worksheet();
+my $worksheet3 = $workbook->add_worksheet();
+
+# Sheet2 won't be visible until it is unhidden in Excel.
+$worksheet2->hide();
+
+$worksheet1->write(0, 0, "Hello");
+$worksheet2->write(0, 0, "Hello");
+$worksheet3->write(0, 0, "Hello");
+
+
+__END__
Modified: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Chart.pm
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Chart.pm 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Chart.pm 2005-04-23 00:22:10 UTC (rev 951)
@@ -2,7 +2,7 @@
###############################################################################
#
-# Worksheet - A writer class for Excel Charts.
+# Chart - A writer class for Excel Charts.
#
#
# Used in conjunction with Spreadsheet::WriteExcel
@@ -24,7 +24,7 @@
use vars qw($VERSION @ISA);
@ISA = qw(Spreadsheet::WriteExcel::BIFFwriter);
-$VERSION = '2.10';
+$VERSION = '2.13';
###############################################################################
#
@@ -64,6 +64,7 @@
$self->{_active_pane} = 3;
$self->{_frozen} = 0;
$self->{_selected} = 0;
+ $self->{_hidden} = 0;
$self->{_paper_size} = 0x0;
$self->{_orientation} = 0x1;
@@ -201,7 +202,8 @@
my $self = shift;
- $self->{_selected} = 1;
+ $self->{_hidden} = 0; # Selected worksheet can't be hidden.
+ $self->{_selected} = 1;
}
@@ -216,13 +218,33 @@
my $self = shift;
- $self->{_selected} = 1;
+ $self->{_hidden} = 0; # Active worksheet can't be hidden.
+ $self->{_selected} = 1;
${$self->{_activesheet}} = $self->{_index};
}
###############################################################################
#
+# hide()
+#
+# Hide this worksheet.
+#
+sub hide {
+
+ my $self = shift;
+
+ $self->{_hidden} = 1;
+
+ # A hidden worksheet shouldn't be active or selected.
+ $self->{_selected} = 0;
+ ${$self->{_activesheet}} = 0;
+ ${$self->{_firstsheet}} = 0;
+}
+
+
+###############################################################################
+#
# set_first_sheet()
#
# Set this worksheet as the first visible sheet. This is necessary
@@ -233,7 +255,8 @@
my $self = shift;
- ${$self->{_firstsheet}} = $self->{_index};
+ $self->{_hidden} = 0; # Active worksheet can't be hidden.
+ ${$self->{_firstsheet}} = $self->{_index};
}
@@ -247,7 +270,7 @@
=head1 NAME
-Worksheet - A writer class for Excel Charts.
+Chart - A writer class for Excel Charts.
=head1 SYNOPSIS
Modified: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Format.pm
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Format.pm 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Format.pm 2005-04-23 00:22:10 UTC (rev 951)
@@ -90,6 +90,9 @@
_diag_color => 0x40,
_diag_border => 0,
+ # Temp code to prevent merged formats in non-merged cells.
+ _used_merge => 0,
+
};
bless $self, $class;
Modified: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Workbook.pm
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Workbook.pm 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Workbook.pm 2005-04-23 00:22:10 UTC (rev 951)
@@ -24,7 +24,7 @@
use vars qw($VERSION @ISA);
@ISA = qw(Spreadsheet::WriteExcel::BIFFwriter Exporter);
-$VERSION = '2.10';
+$VERSION = '2.13';
###############################################################################
#
@@ -769,6 +769,7 @@
# Ensure that at least one worksheet has been selected.
if ($self->{_activesheet} == 0) {
@{$self->{_worksheets}}[0]->{_selected} = 1;
+ @{$self->{_worksheets}}[0]->{_hidden} = 0;
}
# Calculate the number of selected worksheet tabs and call the finalization
@@ -797,6 +798,7 @@
$self->_store_boundsheet($sheet->{_name},
$sheet->{_offset},
$sheet->{_type},
+ $sheet->{_hidden},
$sheet->{_encoding});
}
@@ -1192,10 +1194,13 @@
my $sheetname = $_[0]; # Worksheet name
my $offset = $_[1]; # Location of worksheet BOF
- my $grbit = $_[2]; # Sheet identifier
- my $encoding = $_[3]; # Sheet name encoding
+ my $type = $_[2]; # Worksheet type
+ my $hidden = $_[3]; # Worksheet hidden flag
+ my $encoding = $_[4]; # Sheet name encoding
my $cch = length($sheetname); # Length of sheet name
+ my $grbit = $type | $hidden;
+
# Character length is num of chars not num of bytes
$cch /= 2 if $encoding;
Modified: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Worksheet.pm
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Worksheet.pm 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel/Worksheet.pm 2005-04-23 00:22:10 UTC (rev 951)
@@ -24,7 +24,7 @@
use vars qw($VERSION @ISA);
@ISA = qw(Spreadsheet::WriteExcel::BIFFwriter);
-$VERSION = '2.11';
+$VERSION = '2.13';
###############################################################################
#
@@ -74,6 +74,7 @@
$self->{_active_pane} = 3;
$self->{_frozen} = 0;
$self->{_selected} = 0;
+ $self->{_hidden} = 0;
$self->{_paper_size} = 0x0;
$self->{_orientation} = 0x1;
@@ -376,7 +377,8 @@
my $self = shift;
- $self->{_selected} = 1;
+ $self->{_hidden} = 0; # Selected worksheet can't be hidden.
+ $self->{_selected} = 1;
}
@@ -391,13 +393,33 @@
my $self = shift;
- $self->{_selected} = 1;
+ $self->{_hidden} = 0; # Active worksheet can't be hidden.
+ $self->{_selected} = 1;
${$self->{_activesheet}} = $self->{_index};
}
###############################################################################
#
+# hide()
+#
+# Hide this worksheet.
+#
+sub hide {
+
+ my $self = shift;
+
+ $self->{_hidden} = 1;
+
+ # A hidden worksheet shouldn't be active or selected.
+ $self->{_selected} = 0;
+ ${$self->{_activesheet}} = 0;
+ ${$self->{_firstsheet}} = 0;
+}
+
+
+###############################################################################
+#
# set_first_sheet()
#
# Set this worksheet as the first visible sheet. This is necessary
@@ -408,7 +430,8 @@
my $self = shift;
- ${$self->{_firstsheet}} = $self->{_index};
+ $self->{_hidden} = 0; # Active worksheet can't be hidden.
+ ${$self->{_firstsheet}} = $self->{_index};
}
@@ -1238,13 +1261,28 @@
my $col = $_[2];
my $format = $_[3];
+ my $error = "Error: refer to merge_range() in the documentation. " .
+ "Can't use previously merged format in non-merged cell";
+
if (ref($format)) {
+ # Temp code to prevent merged formats in non-merged cells.
+ croak $error if $format->{_used_merge} == 1;
+ $format->{_used_merge} = -1;
+
return $format->get_xf_index();
}
elsif (exists $self->{_row_formats}->{$row}) {
+ # Temp code to prevent merged formats in non-merged cells.
+ croak $error if $self->{_row_formats}->{$row}->{_used_merge} == 1;
+ $self->{_row_formats}->{$row}->{_used_merge} = -1;
+
return $self->{_row_formats}->{$row}->get_xf_index();
}
elsif (exists $self->{_col_formats}->{$col}) {
+ # Temp code to prevent merged formats in non-merged cells.
+ croak $error if $self->{_col_formats}->{$col}->{_used_merge} == 1;
+ $self->{_col_formats}->{$col}->{_used_merge} = -1;
+
return $self->{_col_formats}->{$col}->get_xf_index();
}
else {
@@ -3322,6 +3360,14 @@
my $format = $_[5];
+ # Temp code to prevent merged formats in non-merged cells.
+ my $error = "Error: refer to merge_range() in the documentation. " .
+ "Can't use previously non-merged format in merged cells";
+
+ croak $error if $format->{_used_merge} == -1;
+ $format->{_used_merge} = 0; # Until the end of this function.
+
+
# Set the merge_range property of the format object. For BIFF8+.
$format->set_merge_range();
@@ -3345,6 +3391,10 @@
}
$self->merge_cells($rwFirst, $colFirst, $rwLast, $colLast);
+
+ # Temp code to prevent merged formats in non-merged cells.
+ $format->{_used_merge} = 1;
+
}
Modified: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel.pm
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel.pm 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/lib/Spreadsheet/WriteExcel.pm 2005-04-23 00:22:10 UTC (rev 951)
@@ -21,7 +21,7 @@
use vars qw($VERSION @ISA);
@ISA = qw(Spreadsheet::WriteExcel::Workbook Exporter);
-$VERSION = '2.12'; # Months mind
+$VERSION = '2.13'; # Impossible to Tell
@@ -63,7 +63,7 @@
=head1 VERSION
-This document refers to version 2.12 of Spreadsheet::WriteExcel, released March 22, 2005.
+This document refers to version 2.13 of Spreadsheet::WriteExcel, released April 20, 2005.
@@ -1669,7 +1669,7 @@
$worksheet->merge_range('B3:D4', 'Vertical and horizontal', $format);
-B<WARNING>. The format object that is used with a C<merge_range()> method call is marked internally as being associated with a merged range. As such, B<it should not be used for other formatting>. This will be fixed in a later version. See the L<BUGS> section.
+B<WARNING>. The format object that is used with a C<merge_range()> method call is marked internally as being associated with a merged range. It is a fatal error to use a merged format in a non-merged cell. Instead you should use separate formats for merged and non-merged cells. This restriction will be removed in a future release.
C<merge_range()> writes its $token argument using the worksheet C<write()> method. Therefore it will handle numbers, strings, formulas or urls as required.
@@ -3627,6 +3627,7 @@
outline.pl An example of outlines and grouping.
panes.pl An examples of how to create panes.
protection.pl Example of cell locking and formula hiding.
+ hide_sheet.pl Simple example of hiding a worksheet.
repeat.pl Example of writing repeated formulas.
sales.pl An example of a simple sales spreadsheet.
sendmail.pl Send an Excel email attachment using Mail::Sender.
@@ -3956,7 +3957,7 @@
XML and UTF8 data on Perl 5.6 can cause Excel files created by Spreadsheet::WriteExcel to become corrupt. See L<Warning about XML::Parser and Perl 5.6> for further details.
-The format object that is used with a C<merge_range()> method call is marked internally as being associated with a merged range.If you use this format in a non-merged cell it will cause Excel to crash. The current workaround is to use separate formats for merged and non-merged cell. This will be fixed in a future release.
+The format object that is used with a C<merge_range()> method call is marked internally as being associated with a merged range.It is a fatal error to use a merged format in a non-merged cell. The current workaround is to use separate formats for merged and non-merged cell. This restriction will be removed in a future release.
Nested formulas sometimes aren't parsed correctly and give a result of "#VALUE". If you come across a formula that parses like this, let me know.
@@ -3992,7 +3993,7 @@
=item * Macros.
-This would solve the previous problem neatly. However, the format of Excel macros isn't documented.
+This would solve some other problems neatly. However, the format of Excel macros isn't documented.
=item * Some feature that you really need. ;-)
@@ -4008,12 +4009,41 @@
There is a Google group for discussing and asking questions about Spreadsheet::WriteExcel: http://groups-beta.google.com/group/spreadsheet-writeexcel/
+=begin html
+
+<table style="border:1px solid #aa0033; font-size:small" align=center>
+ <tr>
+ <td rowspan=3>
+ <img src="http://groups-beta.google.com/groups/img/groups_medium.gif" height=58 width=150 alt="Google Groups">
+ </td>
+ <td colspan=2 align=center><b>Subscribe to Spreadsheet::WriteExcel</b></td>
+ </tr>
+ <form action="http://groups-beta.google.com/group/spreadsheet-writeexcel/boxsubscribe">
+ <tr>
+ <td>Email: <input type=text name=email></td>
+ <td>
+ <table
+ style="background-color:#ffcc33;padding:2px;border:2px outset #ffcc33;">
+ <tr>
+ <td>
+ <input type=submit name="sub" value="Subscribe">
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </form>
+ <tr><td colspan=2 align=center>
+ <a href="http://groups-beta.google.com/group/spreadsheet-writeexcel">Browse Archives</a> at <a href="http://groups-beta.google.com/">groups-beta.google.com</a>
+ </td></tr>
+</table>
+
+=end html
+
Alternatively you can keep up to date with future releases by subscribing at:
http://freshmeat.net/projects/writeexcel/
-
-
=head1 SEE ALSO
Spreadsheet::ParseExcel: http://search.cpan.org/dist/Spreadsheet-ParseExcel
@@ -4043,7 +4073,7 @@
The following people contributed to the debugging and testing of Spreadsheet::WriteExcel:
-Alexander Farber, Andre de Bruin, Arthur at ais, Artur Silveira da Cunha, Borgar Olsen, Brian White, Bob Mackay, Cedric Bouvier, Chad Johnson, CPAN testers, Daniel Berger, Daniel Gardner, Dmitry Kochurov, Eric Frazier, Ernesto Baschny, Felipe Pérez Galiana, Gordon Simpson, Hanc Pavel, Harold Bamford, James Holmes, James Wilkinson, Johan Ekenberg, Johann Hanne, Jonathan Scott Duff, J.C. Wren, Kenneth Stacey, Keith Miller, Kyle Krom, Marc Rosenthal, Markus Schmitz, Michael Braig, Michael Buschauer, Mike Blazer, Michael Erickson, Michael W J West, Ning Xie, Paul J. Falbe, Paul Medynski, Peter Dintelmann, Pierre Laplante, Praveen Kotha, Reto Badertscher, Rich Sorden, Shane Ashby, Shenyu Zheng, Stephan Loescher, Steve Sapovits, Sven Passig, Svetoslav Marinov, Tamas Gulacsi, Troy Daniels, Vahe Sarkissian.
+Alexander Farber, Andre de Bruin, Arthur at ais, Artur Silveira da Cunha, Borgar Olsen, Brian White, Bob Mackay, Cedric Bouvier, Chad Johnson, CPAN testers, Damyan Ivanov, Daniel Berger, Daniel Gardner, Dmitry Kochurov, Eric Frazier, Ernesto Baschny, Felipe Pérez Galiana, Gordon Simpson, Hanc Pavel, Harold Bamford, James Holmes, James Wilkinson, Johan Ekenberg, Johann Hanne, Jonathan Scott Duff, J.C. Wren, Kenneth Stacey, Keith Miller, Kyle Krom, Marc Rosenthal, Markus Schmitz, Michael Braig, Michael Buschauer, Mike Blazer, Michael Erickson, Michael W J West, Ning Xie, Paul J. Falbe, Paul Medynski, Peter Dintelmann, Pierre Laplante, Praveen Kotha, Reto Badertscher, Rich Sorden, Shane Ashby, Shenyu Zheng, Stephan Loescher, Steve Sapovits, Sven Passig, Svetoslav Marinov, Tamas Gulacsi, Troy Daniels, Vahe Sarkissian.
The following people contributed patches, examples or Excel information:
@@ -4053,7 +4083,7 @@
Additional thanks to Takanori Kawai for translating the documentation into Japanese.
-Dirk Eddelbuettel maintains the Debian distro.
+Gunnar Wolf maintains the Debian distro.
Thanks to Damian Conway for the excellent Parse::RecDescent.
@@ -4068,14 +4098,22 @@
John McNamara jmcnamara at cpan.org
- Slow dulcimer, gavotte and bow, in autumn,
- Basho and his friends go out to view the moon;
- In summer, gasoline rainbow in the gutter,
+ Imagine a court of one: the queen a young mother,
+ Unhappy, alone all day with her firstborn child
+ And her new baby in a squalid apartment
- The secret courtesy that courses like ichor
- Through the old form of the rude, full-scale joke,
- Impossible to tell in writing.
+ Of too few rooms, a different race from her neighbors.
+ She tells the child she's going to kill herself.
+ She broods, she rages. Hoping to distract her,
+ The child cuts capers, he sings, he does imitations
+ Of different people in the building, he jokes,
+ He feels if he keeps her alive until the father
+
+ Gets home from work, they'll be okay till morning.
+ It's laughter versus the bedroom and the pills.
+ What is he in his efforts but a courtier?
+
-- Robert Pinsky
Added: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/01_merge_formats.t
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/01_merge_formats.t 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/01_merge_formats.t 2005-04-23 00:22:10 UTC (rev 951)
@@ -0,0 +1,125 @@
+#!/usr/bin/perl -w
+
+###############################################################################
+#
+# A test for Spreadsheet::WriteExcel.
+#
+# Tests to ensure merge formats aren't used in non-merged cells and
+# vice-versa. This is temporary feature to prevent users from inadvertently
+# making this error.
+#
+# reverse('©'), April 2005, John McNamara, jmcnamara at cpan.org
+#
+
+
+use strict;
+
+use Spreadsheet::WriteExcel;
+use Test::More tests => 8;
+
+
+###############################################################################
+#
+# Tests setup
+#
+my $test_file = "temp_test_file.xml";
+my $workbook = Spreadsheet::WriteExcel->new($test_file);
+my $worksheet = $workbook->add_worksheet();
+my $merged_format = $workbook->add_format(bold => 1);
+my $non_merged_format = $workbook->add_format(bold => 1);
+
+
+$worksheet->set_row(5, undef, $merged_format);
+$worksheet->set_column('G:G', undef, $merged_format);
+
+###############################################################################
+#
+# Test
+#
+eval {
+ $worksheet->write ('A1', 'Test', $non_merged_format);
+ $worksheet->merge_range('A3:B4', 'Test', $merged_format );
+};
+ok(! $@, " \tNormal usage.");
+
+
+###############################################################################
+#
+# Test
+#
+eval {
+ $worksheet->write ('D1', 'Test', $merged_format );
+};
+ok( $@, " \tMerge format in non-merged cell.");
+
+
+###############################################################################
+#
+# Test
+#
+eval {
+ $worksheet->merge_range('D3:E4', 'Test', $non_merged_format);
+};
+ok( $@, " \tNon merge format in merged cells.");
+
+
+###############################################################################
+#
+# Test
+#
+eval {
+ $worksheet->write('G1', 'Test',);
+};
+ok( $@, " \tMerge format in column.");
+
+
+###############################################################################
+#
+# Test
+#
+eval {
+ $worksheet->write('A6', 'Test',);
+};
+ok( $@, " \tMerge format in row.");
+
+
+###############################################################################
+#
+# Test
+#
+eval {
+ $worksheet->write('G6', 'Test',);
+};
+ok( $@, " \tMerge format in column and row.");
+
+
+###############################################################################
+#
+# Test
+#
+eval {
+ $worksheet->write('H7', 'Test',);
+};
+ok(! $@, " \tNo merge format in column and row.");
+
+###############################################################################
+#
+# Test
+#
+eval {
+ $worksheet->write ('A1', 'Test', $non_merged_format);
+ $worksheet->merge_range('A3:B4', 'Test', $merged_format );
+};
+ok(! $@, " \tNormal usage again.");
+
+
+
+
+$workbook->close();
+unlink $test_file;
+
+
+__END__
+
+
+
Added: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/11_date_time.t
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/11_date_time.t 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/11_date_time.t 2005-04-23 00:22:10 UTC (rev 951)
@@ -0,0 +1,494 @@
+#!/usr/bin/perl -w
+
+###############################################################################
+#
+# A test for Spreadsheet::WriteExcel.
+#
+# Tests date and time handling.
+#
+# reverse('©'), May 2004, John McNamara, jmcnamara at cpan.org
+#
+
+use strict;
+
+use Spreadsheet::WriteExcel;
+use Test::More tests => 100;
+
+my $date_time;
+my $number;
+my $result;
+my $test_file = "temp_test_file.xls";
+
+my $workbook = Spreadsheet::WriteExcel->new($test_file);
+my $worksheet = $workbook->add_worksheet();
+
+
+# Set float difference limit to half of an Excel millisecond
+my $flt_delta = 0.5/(24*60*60*1000);
+
+
+##############################################################################
+#
+# Float comparison function.
+#
+sub flt_cmp {
+ return abs($_[0] - $_[1]) < $flt_delta;
+}
+
+
+
+##############################################################################
+#
+# Test the flt_cmp() function used in the other tests.
+#
+
+$date_time = '1899-12-31T00:00:00.0004';
+$number = 0;
+$result = $worksheet->convert_date_time($date_time);
+$result = -1 unless defined $result;
+
+# Test 1. This should pass. It is less than the float diff limit.
+ok(flt_cmp($number, $result),
+ " Testing convert_date_time: $date_time $number");
+
+$date_time = '1899-12-31T00:00:00.0005';
+$number = 0;
+$result = $worksheet->convert_date_time($date_time);
+$result = -1 unless defined $result;
+
+# Test 2. This should fail. It is equal to the float diff limit.
+my $diff = ! flt_cmp($number, $result);
+ok($diff, " Testing convert_date_time: $date_time $number");
+
+
+
+
+##############################################################################
+#
+# Test the time data generated in Excel.
+#
+while (<DATA>) {
+
+ last if /^# stop/; # For debugging
+ next unless /\S/; # Ignore blank lines
+ next if /^#/; # Ignore comments
+
+ if (/"DateTime">([^<]+)/) {
+ my $date_time = $1;
+ my $line = <DATA>;
+
+ if ($line =~ /"Number">([^<]+)/) {
+ my $number = 0 + $1;
+ my $result = $worksheet->convert_date_time($date_time);
+ $result = -1 unless defined $result;
+
+ ok(flt_cmp($number, $result),
+ " Testing convert_date_time: $date_time $number")
+ or diag("difference between $number and $result\n" .
+ "= " . abs($number -$result) . "\n".
+ "> $flt_delta");
+ }
+ }
+}
+
+# Clean up
+$workbook->close();
+unlink $test_file;
+
+
+__DATA__
+
+
+# Test data taken from Excel in XML format.
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">1899-12-31T00:00:00.000</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">0</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">1982-08-25T00:15:20.213</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">30188.010650613425</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">2065-04-19T00:16:48.290</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">60376.011670023145</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">2147-12-15T00:55:25.446</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">90565.038488958337</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">2230-08-10T01:02:46.891</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">120753.04359827546</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">2313-04-06T01:04:15.597</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">150942.04462496529</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">2395-11-30T01:09:40.889</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">181130.04838991899</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">2478-07-25T01:11:32.560</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">211318.04968240741</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">2561-03-21T01:30:19.169</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">241507.06272186342</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">2643-11-15T01:48:25.580</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">271695.07529606484</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">2726-07-12T02:03:31.919</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">301884.08578609955</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">2809-03-06T02:11:11.986</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">332072.09111094906</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">2891-10-31T02:24:37.095</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">362261.10042934027</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">2974-06-26T02:35:07.220</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">392449.10772245371</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">3057-02-19T02:45:12.109</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">422637.1147234838</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">3139-10-17T03:06:39.990</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">452826.12962951389</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">3222-06-11T03:08:08.251</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">483014.13065105322</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">3305-02-05T03:19:12.576</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">513203.13834</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">3387-10-01T03:29:42.574</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">543391.14563164348</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">3470-05-27T03:37:30.813</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">573579.15105107636</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">3553-01-21T04:14:38.231</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">603768.17683137732</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">3635-09-16T04:16:28.559</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">633956.17810832174</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">3718-05-13T04:17:58.222</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">664145.17914608796</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">3801-01-06T04:21:41.794</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">694333.18173372687</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">3883-09-02T04:56:35.792</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">724522.20596981479</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">3966-04-28T05:25:14.885</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">754710.2258667245</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">4048-12-21T05:26:05.724</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">784898.22645513888</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">4131-08-18T05:46:44.068</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">815087.24078782403</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">4214-04-13T05:48:01.141</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">845275.24167987274</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">4296-12-07T05:53:52.315</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">875464.24574438657</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">4379-08-03T06:14:48.580</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">905652.26028449077</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">4462-03-28T06:46:15.738</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">935840.28212659725</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">4544-11-22T07:31:20.407</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">966029.31343063654</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">4627-07-19T07:58:33.754</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">996217.33233511576</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">4710-03-15T08:07:43.130</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1026406.3386936343</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">4792-11-07T08:29:11.091</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1056594.3536005903</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">4875-07-04T09:08:15.328</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1086783.3807329629</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">4958-02-27T09:30:41.781</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1116971.3963169097</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">5040-10-23T09:34:04.462</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1147159.3986627546</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">5123-06-20T09:37:23.945</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1177348.4009715857</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">5206-02-12T09:37:56.655</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1207536.4013501736</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">5288-10-08T09:45:12.230</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1237725.406391551</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">5371-06-04T09:54:14.782</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1267913.412671088</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">5454-01-28T09:54:22.108</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1298101.4127558796</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">5536-09-24T10:01:36.151</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1328290.4177795255</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">5619-05-20T12:09:48.602</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1358478.5068125231</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">5702-01-14T12:34:08.549</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1388667.5237100578</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">5784-09-08T12:56:06.495</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1418855.5389640625</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">5867-05-06T12:58:58.217</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1449044.5409515856</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">5949-12-30T12:59:54.263</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1479232.5416002662</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">6032-08-24T13:34:41.331</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1509420.5657561459</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">6115-04-21T13:58:28.601</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1539609.5822754744</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">6197-12-14T14:02:16.899</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1569797.5849178126</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">6280-08-10T14:36:17.444</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1599986.6085352316</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">6363-04-06T14:37:57.451</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1630174.60969272</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">6445-11-30T14:57:42.757</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1660363.6234115392</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">6528-07-26T15:10:48.307</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1690551.6325035533</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">6611-03-22T15:14:39.890</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1720739.635183912</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">6693-11-15T15:19:47.988</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1750928.6387498612</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">6776-07-11T16:04:24.344</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1781116.6697262037</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">6859-03-07T16:22:23.952</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1811305.6822216667</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">6941-10-31T16:29:55.999</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1841493.6874536921</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">7024-06-26T16:58:20.259</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1871681.7071789235</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">7107-02-21T17:04:02.415</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1901870.7111390624</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">7189-10-16T17:18:29.630</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1932058.7211762732</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">7272-06-11T17:47:21.323</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1962247.7412190163</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">7355-02-05T17:53:29.866</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1992435.7454845603</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">7437-10-02T17:53:41.076</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2022624.7456143056</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">7520-05-28T17:55:06.044</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2052812.7465977315</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">7603-01-21T18:14:49.151</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2083000.7602910995</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">7685-09-16T18:17:45.738</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2113189.7623349307</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">7768-05-12T18:29:59.700</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2143377.7708298611</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">7851-01-07T18:33:21.233</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2173566.773162419</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">7933-09-02T19:14:24.673</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2203754.8016744559</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">8016-04-27T19:17:12.816</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2233942.8036205554</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">8098-12-22T19:23:36.418</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2264131.8080603937</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">8181-08-17T19:46:25.908</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2294319.8239109721</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">8264-04-13T20:07:47.314</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2324508.8387420601</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">8346-12-08T20:31:37.603</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2354696.855296331</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">8429-08-03T20:39:57.770</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2384885.8610853008</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">8512-03-29T20:50:17.067</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2415073.8682530904</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">8594-11-22T21:02:57.827</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2445261.8770581828</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">8677-07-19T21:23:05.519</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2475450.8910360998</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">8760-03-14T21:34:49.572</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2505638.8991848612</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">8842-11-08T21:39:05.944</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2535827.9021521294</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">8925-07-04T21:39:18.426</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2566015.9022965971</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">9008-02-28T21:46:07.769</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2596203.9070343636</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">9090-10-24T21:57:55.662</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2626392.9152275696</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">9173-06-19T22:19:11.732</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2656580.9299968979</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">9256-02-13T22:23:51.376</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2686769.9332335186</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">9338-10-09T22:27:58.771</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2716957.9360968866</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">9421-06-05T22:43:30.392</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2747146.9468795368</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">9504-01-30T22:48:25.834</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2777334.9502990046</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">9586-09-24T22:53:51.727</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2807522.9540709145</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">9669-05-20T23:12:56.536</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2837711.9673210187</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">9752-01-14T23:15:54.109</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2867899.9693762613</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">9834-09-10T23:17:12.632</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2898088.9702850925</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s21"><Data ss:Type="DateTime">9999-12-31T23:59:59.000</Data></Cell>
+ <Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2958465.999988426</Data></Cell>
+ </Row>
Added: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/12_date_only.t
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/12_date_only.t 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/12_date_only.t 2005-04-23 00:22:10 UTC (rev 951)
@@ -0,0 +1,505 @@
+#!/usr/bin/perl -w
+
+###############################################################################
+#
+# A test for Spreadsheet::WriteExcel.
+#
+# Tests date and time handling. Tests dates in 1900 and 1904 format.
+#
+# reverse('©'), May 2004, John McNamara, jmcnamara at cpan.org
+#
+
+use strict;
+
+use Spreadsheet::WriteExcel;
+use Test::More tests => 420;
+
+my $date_time;
+my $number;
+my $result;
+my $test_file = "temp_test_file.xls";
+
+my $workbook = Spreadsheet::WriteExcel->new($test_file);
+my $worksheet = $workbook->add_worksheet();
+
+
+
+
+
+
+##############################################################################
+#
+# Test the dates generated by Excel.
+#
+while (<DATA>) {
+ last if /^# stop/; # For debugging
+
+ $worksheet->{_1904} = 0 if /Excel 1900/; # Change date system
+ $worksheet->{_1904} = 1 if /Excel 1904/; # Change date system
+
+ next unless /\S/; # Ignore blank lines
+ next if /^#/; # Ignore comments
+
+
+ my ($count, $date, $result) = split;
+
+ my $number = $worksheet->convert_date_time($date);
+ $number = -1 unless defined $number;
+
+ is($number, $result, " Testing convert_date_time: $date $result")
+
+}
+
+
+# Clean up
+$workbook->close();
+unlink $test_file;
+
+
+
+__DATA__
+#
+# The following data was generated by Excel.
+#
+
+#
+# Excel 1900 date system
+#
+1 1899-12-31T 0
+2 1900-01-00T 0
+3 1900-01-01T 1
+4 1900-02-27T 58
+5 1900-02-28T 59
+6 1900-02-29T 60
+7 1900-03-01T 61
+8 1900-03-02T 62
+9 1900-03-11T 71
+10 1900-04-08T 99
+11 1900-09-12T 256
+12 1901-05-03T 489
+13 1901-10-13T 652
+14 1902-02-15T 777
+15 1902-06-06T 888
+16 1902-09-25T 999
+17 1902-09-27T 1001
+18 1903-04-26T 1212
+19 1903-08-05T 1313
+20 1903-12-31T 1461
+21 1904-01-01T 1462
+22 1904-02-28T 1520
+23 1904-02-29T 1521
+24 1904-03-01T 1522
+25 1907-02-27T 2615
+26 1907-02-28T 2616
+27 1907-03-01T 2617
+28 1907-03-02T 2618
+29 1907-03-03T 2619
+30 1907-03-04T 2620
+31 1907-03-05T 2621
+32 1907-03-06T 2622
+33 1999-01-01T 36161
+34 1999-01-31T 36191
+35 1999-02-01T 36192
+36 1999-02-28T 36219
+37 1999-03-01T 36220
+38 1999-03-31T 36250
+39 1999-04-01T 36251
+40 1999-04-30T 36280
+41 1999-05-01T 36281
+42 1999-05-31T 36311
+43 1999-06-01T 36312
+44 1999-06-30T 36341
+45 1999-07-01T 36342
+46 1999-07-31T 36372
+47 1999-08-01T 36373
+48 1999-08-31T 36403
+49 1999-09-01T 36404
+50 1999-09-30T 36433
+51 1999-10-01T 36434
+52 1999-10-31T 36464
+53 1999-11-01T 36465
+54 1999-11-30T 36494
+55 1999-12-01T 36495
+56 1999-12-31T 36525
+57 2000-01-01T 36526
+58 2000-01-31T 36556
+59 2000-02-01T 36557
+60 2000-02-29T 36585
+61 2000-03-01T 36586
+62 2000-03-31T 36616
+63 2000-04-01T 36617
+64 2000-04-30T 36646
+65 2000-05-01T 36647
+66 2000-05-31T 36677
+67 2000-06-01T 36678
+68 2000-06-30T 36707
+69 2000-07-01T 36708
+70 2000-07-31T 36738
+71 2000-08-01T 36739
+72 2000-08-31T 36769
+73 2000-09-01T 36770
+74 2000-09-30T 36799
+75 2000-10-01T 36800
+76 2000-10-31T 36830
+77 2000-11-01T 36831
+78 2000-11-30T 36860
+79 2000-12-01T 36861
+80 2000-12-31T 36891
+81 2001-01-01T 36892
+82 2001-01-31T 36922
+83 2001-02-01T 36923
+84 2001-02-28T 36950
+85 2001-03-01T 36951
+86 2001-03-31T 36981
+87 2001-04-01T 36982
+88 2001-04-30T 37011
+89 2001-05-01T 37012
+90 2001-05-31T 37042
+91 2001-06-01T 37043
+92 2001-06-30T 37072
+93 2001-07-01T 37073
+94 2001-07-31T 37103
+95 2001-08-01T 37104
+96 2001-08-31T 37134
+97 2001-09-01T 37135
+98 2001-09-30T 37164
+99 2001-10-01T 37165
+100 2001-10-31T 37195
+101 2001-11-01T 37196
+102 2001-11-30T 37225
+103 2001-12-01T 37226
+104 2001-12-31T 37256
+105 2400-01-01T 182623
+106 2400-01-31T 182653
+107 2400-02-01T 182654
+108 2400-02-29T 182682
+109 2400-03-01T 182683
+110 2400-03-31T 182713
+111 2400-04-01T 182714
+112 2400-04-30T 182743
+113 2400-05-01T 182744
+114 2400-05-31T 182774
+115 2400-06-01T 182775
+116 2400-06-30T 182804
+117 2400-07-01T 182805
+118 2400-07-31T 182835
+119 2400-08-01T 182836
+120 2400-08-31T 182866
+121 2400-09-01T 182867
+122 2400-09-30T 182896
+123 2400-10-01T 182897
+124 2400-10-31T 182927
+125 2400-11-01T 182928
+126 2400-11-30T 182957
+127 2400-12-01T 182958
+128 2400-12-31T 182988
+129 4000-01-01T 767011
+130 4000-01-31T 767041
+131 4000-02-01T 767042
+132 4000-02-29T 767070
+133 4000-03-01T 767071
+134 4000-03-31T 767101
+135 4000-04-01T 767102
+136 4000-04-30T 767131
+137 4000-05-01T 767132
+138 4000-05-31T 767162
+139 4000-06-01T 767163
+140 4000-06-30T 767192
+141 4000-07-01T 767193
+142 4000-07-31T 767223
+143 4000-08-01T 767224
+144 4000-08-31T 767254
+145 4000-09-01T 767255
+146 4000-09-30T 767284
+147 4000-10-01T 767285
+148 4000-10-31T 767315
+149 4000-11-01T 767316
+150 4000-11-30T 767345
+151 4000-12-01T 767346
+152 4000-12-31T 767376
+153 4321-01-01T 884254
+154 4321-01-31T 884284
+155 4321-02-01T 884285
+156 4321-02-28T 884312
+157 4321-03-01T 884313
+158 4321-03-31T 884343
+159 4321-04-01T 884344
+160 4321-04-30T 884373
+161 4321-05-01T 884374
+162 4321-05-31T 884404
+163 4321-06-01T 884405
+164 4321-06-30T 884434
+165 4321-07-01T 884435
+166 4321-07-31T 884465
+167 4321-08-01T 884466
+168 4321-08-31T 884496
+169 4321-09-01T 884497
+170 4321-09-30T 884526
+171 4321-10-01T 884527
+172 4321-10-31T 884557
+173 4321-11-01T 884558
+174 4321-11-30T 884587
+175 4321-12-01T 884588
+176 4321-12-31T 884618
+177 9999-01-01T 2958101
+178 9999-01-31T 2958131
+179 9999-02-01T 2958132
+180 9999-02-28T 2958159
+181 9999-03-01T 2958160
+182 9999-03-31T 2958190
+183 9999-04-01T 2958191
+184 9999-04-30T 2958220
+185 9999-05-01T 2958221
+186 9999-05-31T 2958251
+187 9999-06-01T 2958252
+188 9999-06-30T 2958281
+189 9999-07-01T 2958282
+190 9999-07-31T 2958312
+191 9999-08-01T 2958313
+192 9999-08-31T 2958343
+193 9999-09-01T 2958344
+194 9999-09-30T 2958373
+195 9999-10-01T 2958374
+196 9999-10-31T 2958404
+197 9999-11-01T 2958405
+198 9999-11-30T 2958434
+199 9999-12-01T 2958435
+200 9999-12-31T 2958465
+
+#
+# Excel 1904 date system
+#
+201 1904-01-01T 0
+202 1904-01-31T 30
+203 1904-02-01T 31
+204 1904-02-29T 59
+205 1904-03-01T 60
+206 1904-03-31T 90
+207 1904-04-01T 91
+208 1904-04-30T 120
+209 1904-05-01T 121
+210 1904-05-31T 151
+211 1904-06-01T 152
+212 1904-06-30T 181
+213 1904-07-01T 182
+214 1904-07-31T 212
+215 1904-08-01T 213
+216 1904-08-31T 243
+217 1904-09-01T 244
+218 1904-09-30T 273
+219 1904-10-01T 274
+220 1904-10-31T 304
+221 1904-11-01T 305
+222 1904-11-30T 334
+223 1904-12-01T 335
+224 1904-12-31T 365
+225 1907-02-27T 1153
+226 1907-02-28T 1154
+227 1907-03-01T 1155
+228 1907-03-02T 1156
+229 1907-03-03T 1157
+230 1907-03-04T 1158
+231 1907-03-05T 1159
+232 1907-03-06T 1160
+233 1999-01-01T 34699
+234 1999-01-31T 34729
+235 1999-02-01T 34730
+236 1999-02-28T 34757
+237 1999-03-01T 34758
+238 1999-03-31T 34788
+239 1999-04-01T 34789
+240 1999-04-30T 34818
+241 1999-05-01T 34819
+242 1999-05-31T 34849
+243 1999-06-01T 34850
+244 1999-06-30T 34879
+245 1999-07-01T 34880
+246 1999-07-31T 34910
+247 1999-08-01T 34911
+248 1999-08-31T 34941
+249 1999-09-01T 34942
+250 1999-09-30T 34971
+251 1999-10-01T 34972
+252 1999-10-31T 35002
+253 1999-11-01T 35003
+254 1999-11-30T 35032
+255 1999-12-01T 35033
+256 1999-12-31T 35063
+257 2000-01-01T 35064
+258 2000-01-31T 35094
+259 2000-02-01T 35095
+260 2000-02-29T 35123
+261 2000-03-01T 35124
+262 2000-03-31T 35154
+263 2000-04-01T 35155
+264 2000-04-30T 35184
+265 2000-05-01T 35185
+266 2000-05-31T 35215
+267 2000-06-01T 35216
+268 2000-06-30T 35245
+269 2000-07-01T 35246
+270 2000-07-31T 35276
+271 2000-08-01T 35277
+272 2000-08-31T 35307
+273 2000-09-01T 35308
+274 2000-09-30T 35337
+275 2000-10-01T 35338
+276 2000-10-31T 35368
+277 2000-11-01T 35369
+278 2000-11-30T 35398
+279 2000-12-01T 35399
+280 2000-12-31T 35429
+281 2001-01-01T 35430
+282 2001-01-31T 35460
+283 2001-02-01T 35461
+284 2001-02-28T 35488
+285 2001-03-01T 35489
+286 2001-03-31T 35519
+287 2001-04-01T 35520
+288 2001-04-30T 35549
+289 2001-05-01T 35550
+290 2001-05-31T 35580
+291 2001-06-01T 35581
+292 2001-06-30T 35610
+293 2001-07-01T 35611
+294 2001-07-31T 35641
+295 2001-08-01T 35642
+296 2001-08-31T 35672
+297 2001-09-01T 35673
+298 2001-09-30T 35702
+299 2001-10-01T 35703
+300 2001-10-31T 35733
+301 2001-11-01T 35734
+302 2001-11-30T 35763
+303 2001-12-01T 35764
+304 2001-12-31T 35794
+305 2400-01-01T 181161
+306 2400-01-31T 181191
+307 2400-02-01T 181192
+308 2400-02-29T 181220
+309 2400-03-01T 181221
+310 2400-03-31T 181251
+311 2400-04-01T 181252
+312 2400-04-30T 181281
+313 2400-05-01T 181282
+314 2400-05-31T 181312
+315 2400-06-01T 181313
+316 2400-06-30T 181342
+317 2400-07-01T 181343
+318 2400-07-31T 181373
+319 2400-08-01T 181374
+320 2400-08-31T 181404
+321 2400-09-01T 181405
+322 2400-09-30T 181434
+323 2400-10-01T 181435
+324 2400-10-31T 181465
+325 2400-11-01T 181466
+326 2400-11-30T 181495
+327 2400-12-01T 181496
+328 2400-12-31T 181526
+329 4000-01-01T 765549
+330 4000-01-31T 765579
+331 4000-02-01T 765580
+332 4000-02-29T 765608
+333 4000-03-01T 765609
+334 4000-03-31T 765639
+335 4000-04-01T 765640
+336 4000-04-30T 765669
+337 4000-05-01T 765670
+338 4000-05-31T 765700
+339 4000-06-01T 765701
+340 4000-06-30T 765730
+341 4000-07-01T 765731
+342 4000-07-31T 765761
+343 4000-08-01T 765762
+344 4000-08-31T 765792
+345 4000-09-01T 765793
+346 4000-09-30T 765822
+347 4000-10-01T 765823
+348 4000-10-31T 765853
+349 4000-11-01T 765854
+350 4000-11-30T 765883
+351 4000-12-01T 765884
+352 4000-12-31T 765914
+353 4321-01-01T 882792
+354 4321-01-31T 882822
+355 4321-02-01T 882823
+356 4321-02-28T 882850
+357 4321-03-01T 882851
+358 4321-03-31T 882881
+359 4321-04-01T 882882
+360 4321-04-30T 882911
+361 4321-05-01T 882912
+362 4321-05-31T 882942
+363 4321-06-01T 882943
+364 4321-06-30T 882972
+365 4321-07-01T 882973
+366 4321-07-31T 883003
+367 4321-08-01T 883004
+368 4321-08-31T 883034
+369 4321-09-01T 883035
+370 4321-09-30T 883064
+371 4321-10-01T 883065
+372 4321-10-31T 883095
+373 4321-11-01T 883096
+374 4321-11-30T 883125
+375 4321-12-01T 883126
+376 4321-12-31T 883156
+377 9999-01-01T 2956639
+378 9999-01-31T 2956669
+379 9999-02-01T 2956670
+380 9999-02-28T 2956697
+381 9999-03-01T 2956698
+382 9999-03-31T 2956728
+383 9999-04-01T 2956729
+384 9999-04-30T 2956758
+385 9999-05-01T 2956759
+386 9999-05-31T 2956789
+387 9999-06-01T 2956790
+388 9999-06-30T 2956819
+389 9999-07-01T 2956820
+390 9999-07-31T 2956850
+391 9999-08-01T 2956851
+392 9999-08-31T 2956881
+393 9999-09-01T 2956882
+394 9999-09-30T 2956911
+395 9999-10-01T 2956912
+396 9999-10-31T 2956942
+397 9999-11-01T 2956943
+398 9999-11-30T 2956972
+399 9999-12-01T 2956973
+400 9999-12-31T 2957003
+
+
+#
+# The following dates are invalid.
+#
+
+#
+# Excel 1900 date system
+#
+401 0000-12-30T -1 # Below year range.
+402 1000-12-30T -1 # Below year range.
+403 1899-12-30T -1 # Below year range.
+404 2002-02-29T -1 # False leap-day.
+405 2000-00-00T -1 # No month or day.
+406 2000-01-00T -1 # No day.
+407 2000-00-01T -1 # No month.
+408 2000-13-01T -1 # Month out of range.
+409 2000-12-32T -1 # Day out of range.
+410 10000-01-01T -1 # Year out of range.
+
+#
+# Excel 1904 date system
+#
+411 1899-12-31T -1 # Below year range.
+412 1900-01-01T -1 # Below year range.
+413 1903-12-31T -1 # Below year range.
+414 2001-02-29T -1 # False leap-day.
+415 2000-00-00T -1 # No month or day.
+416 2000-01-00T -1 # No day.
+417 2000-00-01T -1 # No month.
+418 2000-13-01T -1 # Month out of range.
+419 2000-12-32T -1 # Day out of range.
+420 10000-01-01T -1 # Year out of range.
+
Added: packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/13_date_seconds.t
===================================================================
--- packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/13_date_seconds.t 2005-04-23 00:22:01 UTC (rev 950)
+++ packages/libspreadsheet-writeexcel-perl/branches/upstream/current/t/13_date_seconds.t 2005-04-23 00:22:10 UTC (rev 951)
@@ -0,0 +1,524 @@
+#!/usr/bin/perl -w
+
+###############################################################################
+#
+# A test for Spreadsheet::WriteExcel.
+#
+# Tests date and time second handling.
+#
+# reverse('©'), May 2004, John McNamara, jmcnamara at cpan.org
+#
+
+use strict;
+
+use Spreadsheet::WriteExcel;
+use Test::More tests => 104;
+
+my $date_time;
+my $number;
+my $result;
+my $test_file = "temp_test_file.xls";
+
+my $workbook = Spreadsheet::WriteExcel->new($test_file);
+my $worksheet = $workbook->add_worksheet();
+
+
+# Set float difference limit to half of an Excel millisecond
+my $flt_delta = 0.5/(24*60*60*1000);
+
+
+##############################################################################
+#
+# Float comparison function.
+#
+sub flt_cmp {
+ return abs($_[0] - $_[1]) < $flt_delta;
+}
+
+
+##############################################################################
+#
+# Test the flt_cmp() function used in the other tests.
+#
+
+$date_time = '1899-12-31T00:00:00.0004';
+$number = 0;
+$result = $worksheet->convert_date_time($date_time);
+$result = -1 unless defined $result;
+
+# Test 1. This should pass. It is less than the float diff limit.
+ok(flt_cmp($number, $result),
+ " Testing flt_cmp() for $date_time $number");
+
+$date_time = '1899-12-31T00:00:00.0005';
+$number = 0;
+$result = $worksheet->convert_date_time($date_time);
+$result = -1 unless defined $result;
+
+# Test 2. This should fail. It is equal to the float diff limit.
+my $diff = ! flt_cmp($number, $result);
+ok($diff, " Testing flt_cmp() for $date_time $number");
+
+
+
+
+##############################################################################
+#
+# Test some false times.
+#
+
+# These should fail.
+my $fail;
+
+$date_time = '1899-12-31T24:00:00.000';
+$fail = ! $worksheet->convert_date_time($date_time);
+ok($fail, " Testing incorrect time: $date_time\tincorrect hour caught.");
+
+$date_time = '1899-12-31T00:60:00.000';
+$fail = ! $worksheet->convert_date_time($date_time);
+ok($fail, " Testing incorrect time: $date_time\tincorrect mins caught.");
+
+$date_time = '1899-12-31T00:00:60.000';
+$fail = ! $worksheet->convert_date_time($date_time);
+ok($fail, " Testing incorrect time: $date_time\tincorrect secs caught.");
+
+$date_time = '1899-12-31T00:00:59.9999999999999999999';
+$fail = ! $worksheet->convert_date_time($date_time);
+ok($fail, " Testing incorrect time: $date_time\tincorrect secs caught.");
+
+
+
+
+
+##############################################################################
+#
+# Test the time data generated in Excel.
+#
+while (<DATA>) {
+
+ last if /^# stop/; # For debugging
+ next unless /\S/; # Ignore blank lines
+ next if /^#/; # Ignore comments
+
+ if (/"DateTime">([^<]+)/) {
+ my $date_time = $1;
+ my $line = <DATA>;
+
+ if ($line =~ /"Number">([^<]+)/) {
+ my $number = 0 + $1;
+ my $result = $worksheet->convert_date_time($date_time);
+ $result = -1 unless defined $result;
+
+ ok(flt_cmp($number, $result),
+ " Testing convert_date_time: $date_time $number")
+ or diag("difference between $number and $result\n" .
+ "= " . abs($number -$result) . "\n".
+ "> $flt_delta");
+ }
+ }
+}
+
+# Clean up
+$workbook->close();
+unlink $test_file;
+
+
+__DATA__
+
+
+# Test data taken from Excel in XML format.
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T00:00:00.000</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T00:15:20.213</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">1.0650613425925924E-2</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T00:16:48.290</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">1.1670023148148148E-2</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T00:55:25.446</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">3.8488958333333337E-2</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T01:02:46.891</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">4.3598275462962965E-2</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T01:04:15.597</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">4.4624965277777782E-2</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T01:09:40.889</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">4.8389918981481483E-2</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T01:11:32.560</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">4.9682407407407404E-2</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T01:30:19.169</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">6.2721863425925936E-2</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T01:48:25.580</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">7.5296064814814809E-2</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T02:03:31.919</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">8.5786099537037031E-2</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T02:11:11.986</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">9.1110949074074077E-2</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T02:24:37.095</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.10042934027777778</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T02:35:07.220</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.1077224537037037</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T02:45:12.109</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.11472348379629631</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T03:06:39.990</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.12962951388888888</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T03:08:08.251</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.13065105324074075</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T03:19:12.576</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.13833999999999999</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T03:29:42.574</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.14563164351851851</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T03:37:30.813</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.1510510763888889</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T04:14:38.231</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.1768313773148148</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T04:16:28.559</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.17810832175925925</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T04:17:58.222</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.17914608796296297</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T04:21:41.794</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.18173372685185185</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T04:56:35.792</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.2059698148148148</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T05:25:14.885</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.22586672453703704</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T05:26:05.724</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.22645513888888891</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T05:46:44.068</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.24078782407407406</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T05:48:01.141</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.2416798726851852</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T05:53:52.315</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.24574438657407408</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T06:14:48.580</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.26028449074074073</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T06:46:15.738</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.28212659722222222</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T07:31:20.407</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.31343063657407405</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T07:58:33.754</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.33233511574074076</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T08:07:43.130</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.33869363425925925</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T08:29:11.091</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.35360059027777774</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T09:08:15.328</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.380732962962963</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T09:30:41.781</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.39631690972222228</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T09:34:04.462</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.39866275462962958</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T09:37:23.945</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.40097158564814817</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T09:37:56.655</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.40135017361111114</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T09:45:12.230</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.40639155092592594</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T09:54:14.782</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.41267108796296298</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T09:54:22.108</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.41275587962962962</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T10:01:36.151</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.41777952546296299</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T12:09:48.602</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.50681252314814818</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T12:34:08.549</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.52371005787037039</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T12:56:06.495</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.53896406249999995</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T12:58:58.217</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.54095158564814816</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T12:59:54.263</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.54160026620370372</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T13:34:41.331</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.56575614583333333</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T13:58:28.601</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.58227547453703699</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T14:02:16.899</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.58491781249999997</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T14:36:17.444</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.60853523148148148</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T14:37:57.451</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.60969271990740748</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T14:57:42.757</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.6234115393518519</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T15:10:48.307</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.6325035532407407</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T15:14:39.890</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.63518391203703706</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T15:19:47.988</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.63874986111111109</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T16:04:24.344</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.66972620370370362</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T16:22:23.952</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.68222166666666662</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T16:29:55.999</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.6874536921296297</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T16:58:20.259</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.70717892361111112</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T17:04:02.415</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.71113906250000003</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T17:18:29.630</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.72117627314814825</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T17:47:21.323</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.74121901620370367</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T17:53:29.866</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.74548456018518516</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T17:53:41.076</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.74561430555555563</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T17:55:06.044</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.74659773148148145</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T18:14:49.151</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.760291099537037</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T18:17:45.738</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.76233493055555546</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T18:29:59.700</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.77082986111111118</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T18:33:21.233</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.77316241898148153</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T19:14:24.673</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.80167445601851861</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T19:17:12.816</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.80362055555555545</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T19:23:36.418</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.80806039351851855</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T19:46:25.908</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.82391097222222232</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T20:07:47.314</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.83874206018518516</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T20:31:37.603</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.85529633101851854</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T20:39:57.770</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.86108530092592594</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T20:50:17.067</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.86825309027777775</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T21:02:57.827</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.87705818287037041</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T21:23:05.519</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.891036099537037</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T21:34:49.572</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.89918486111111118</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T21:39:05.944</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.90215212962962965</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T21:39:18.426</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.90229659722222222</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T21:46:07.769</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.90703436342592603</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T21:57:55.662</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.91522756944444439</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T22:19:11.732</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.92999689814814823</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T22:23:51.376</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.93323351851851843</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T22:27:58.771</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.93609688657407408</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T22:43:30.392</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.94687953703703709</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T22:48:25.834</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.95029900462962968</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T22:53:51.727</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.95407091435185187</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T23:12:56.536</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.96732101851851848</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T23:15:54.109</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.96937626157407408</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T23:17:12.632</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.97028509259259266</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:StyleID="s22"><Data ss:Type="DateTime">1899-12-31T23:59:59.999</Data></Cell>
+ <Cell ss:StyleID="s23" ss:Formula="=RC[-1]"><Data ss:Type="Number">0.99999998842592586</Data></Cell>
+ </Row>
+
+
+
More information about the Pkg-perl-cvs-commits
mailing list