Skip Menu |

This queue is for tickets about the Spreadsheet-WriteExcel CPAN distribution.

Maintainer(s)' notes

If you are reporting a bug in Spreadsheet::WriteExcel here are some pointers

1) State the issues as clearly and as concisely as possible. A simple program or Excel test file (see below) will often explain the issue better than a lot of text.

2) Provide information on your system, version of perl and module versions. The following program will generate everything that is required. Put this information in your bug report.

    #!/usr/bin/perl -w

    print "\n    Perl version   : $]";
    print "\n    OS name        : $^O";
    print "\n    Module versions: (not all are required)\n";

    my @modules = qw(
                      Spreadsheet::WriteExcel
                      Parse::RecDescent
                      File::Temp
                      OLE::Storage_Lite
                      IO::Stringy
                      Spreadsheet::ParseExcel
                      Scalar::Util
                      Unicode::Map
                    );

    for my $module (@modules) {
        my $version;
        eval "require $module";

        if (not $@) {
            $version = $module->VERSION;
            $version = '(unknown)' if not defined $version;
        }
        else {
            $version = '(not installed)';
        }

        printf "%21s%-24s\t%s\n", "", $module, $version;
    }

    __END__

3) Upgrade to the latest version of Spreadsheet::WriteExcel (or at least test on a system with an upgraded version). The issue you are reporting may already have been fixed.

4) Create a small but complete example program that demonstrates your problem. The program should be as small as possible. At the same time it should be a complete program that generates an Excel file. If the Spreadsheet::WriteExcel section is part of a much larger program then simplify it down to the essentials. Simulate any DB reads with an array.

5) Say if you tested with Excel, OpenOffice, Gnumeric or something else. Say which version of that application you used.

6) If you are submitting a patch you should check with the author whether the issue has already been patched or if a fix is in the works. Patches should be accompanied by test cases.

Asking a question

If you would like to ask a more general question there is the Spreadsheet::WriteExcel Google Group.

Report information
The Basics
Id: 32608
Status: rejected
Priority: 0/
Queue: Spreadsheet-WriteExcel

People
Owner: jmcnamara [...] cpan.org
Requestors: cpan [...] tobias-tacke.de
Cc:
AdminCc:

Bug Information
Severity: Unimportant
Broken in: 2.20
Fixed in: (no value)



Subject: Inconsistent constructor-interface vor files <7MB to files >7MB
If you create files bigger than 7MB you can give a scalarref to the constructor and all is fine. If your file is smaller than 7MB thes would croak (decrease the $row-loop to 100 to reproduce that). <code>use WiP::Util::ExcelWriter; use OLE::Storage_Lite; use OLE::Storage; use IO::Scalar 2.110; use strict; use Spreadsheet::WriteExcel; my $content = ''; my $test = new IO::Scalar(\$content); $test->binmode(); my $workbook = Spreadsheet::WriteExcel->new(\$content); my $worksheet = $workbook->add_worksheet(); $worksheet->set_column(0, 50, 18); for my $col (0 .. 50) { for my $row (0 .. 6000) { $worksheet->write($row, $col, "Row: $row Col: $col"); } } $workbook->close(); print "Laenge: ".length($content)."\n";</code>
Subject: Maybe a failure in WriteExcel::Big POD
There is maybe a failure in the POD of the WriteExcel::Big module. There is the hint, that Excel-Files bigger than 7MB can be written of ExcelWriter version 2.17, but I cant create large files before version 2.18. Regards Tobias
On Thu Jan 24 03:27:49 2008, TOBIWAN wrote: Show quoted text
> If you create files bigger than 7MB you can give a scalarref to the > constructor and all is fine. If your file is smaller than 7MB thes > would croak (decrease the $row-loop to 100 to reproduce that).
Hi Tobias, Thanks. I will investigate. John. --
On Thu Jan 24 04:26:45 2008, TOBIWAN wrote: Show quoted text
> There is maybe a failure in the POD of the WriteExcel::Big module. > There is the hint, that Excel-Files bigger than 7MB can be written of > ExcelWriter version 2.17, but I cant create large files before version > 2.18.
Hi Tobias, Is this additional information in relation to issue 32608? http://rt.cpan.org/Ticket/Display.html?id=32608 John. --
Um, yep. There is a connection but I cant write large Excelfiles with a earlier version even if I fix the bug 32608 local. I'm not shure what circumstance result this.
On Thu Jan 24 03:27:49 2008, TOBIWAN wrote: Show quoted text
> If you create files bigger than 7MB you can give a scalarref to the > constructor and all is fine. If your file is smaller than 7MB thes > would croak (decrease the $row-loop to 100 to reproduce that).
Hi Tobias, There is a bug in your code below. Show quoted text
> my $content = ''; > my $test = new IO::Scalar(\$content); > $test->binmode(); > my $workbook = Spreadsheet::WriteExcel->new(\$content); # Here!!
The Spreadsheet::WriteExcel documentation for new() states "A new Excel workbook is created using the new() constructor which accepts either a filename or a filehandle as a parameter". You are passing a scalar ref rather than a "filename or a filehandle". That is wrong. The fact that it works with ::Big is due to a historical feature of OLE::Storage_Lite that is deprecated and may one day disappear. This is not a bug and so I will close it after the next release. John. -- Show quoted text
> my $worksheet = $workbook->add_worksheet(); > > $worksheet->set_column(0, 50, 18); > > for my $col (0 .. 50) { > for my $row (0 .. 6000) { > $worksheet->write($row, $col, "Row: $row Col: $col"); > } > } > $workbook->close(); > print "Laenge: ".length($content)."\n";</code>