MIME-Version: | 1.0 |
In-Reply-To: | <do-/eludia/issues/24/266791967@github.com> |
X-Spam-Status: | No, score=-4.2 tagged_above=-99.9 required=10 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001] autolearn=ham |
X-Mdarrival-Date: | Tue, 13 Dec 2016 23:02:15 +0100 |
X-Spam-Flag: | NO |
X-Virus-Checked: | Checked |
References: | <do-/eludia/issues/24@github.com> <do-/eludia/issues/24/266791967@github.com> |
X-Mdav-Processed: | mail1.kisters.de, Tue, 13 Dec 2016 23:02:15 +0100 |
Content-Type: | multipart/alternative; boundary="=_alternative 0079221ECA258088_=" |
Message-ID: | <OFF81FD9D2.62C6BE42-ONCA258088.0074E4D4-CA258088.0079221F@kisters.de> |
X-Virus-Scanned: | Debian amavisd-new at bestpractical.com |
X-Spam-Processed: | mail1.kisters.de, Tue, 13 Dec 2016 23:02:15 +0100 (not processed: spam filter heuristic analysis disabled) |
X-Spam-Score: | -4.2 |
X-Keepsent: | F81FD9D2:62C6BE42-CA258088:0074E4D4; type=4; name=$KeepSent |
Received: | from localhost (localhost [127.0.0.1]) by hipster.bestpractical.com (Postfix) with ESMTP id EAE58240353 for <cpan-bug+Spreadsheet-XLSX@hipster.bestpractical.com>; Tue, 13 Dec 2016 17:02:33 -0500 (EST) |
Received: | from hipster.bestpractical.com ([127.0.0.1]) by localhost (hipster.bestpractical.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Bla65udh1c1F for <cpan-bug+Spreadsheet-XLSX@hipster.bestpractical.com>; Tue, 13 Dec 2016 17:02:31 -0500 (EST) |
Received: | from la.mx.develooper.com (x1.develooper.com [207.171.7.70]) by hipster.bestpractical.com (Postfix) with SMTP id 4CDED240103 for <bug-Spreadsheet-XLSX@rt.cpan.org>; Tue, 13 Dec 2016 17:02:30 -0500 (EST) |
Received: | (qmail 7658 invoked by alias); 13 Dec 2016 22:02:30 -0000 |
Received: | from mail1.kisters.de (HELO mail1.kisters.de) (193.23.163.103) by la.mx.develooper.com (qpsmtpd/0.28) with ESMTP; Tue, 13 Dec 2016 14:02:20 -0800 |
Received: | from kisters-ac1.kisters.de by mail1.kisters.de (MDaemon PRO v16.5.2) with ESMTP id md50021739714.msg for <bug-Spreadsheet-XLSX@rt.cpan.org>; Tue, 13 Dec 2016 23:02:15 +0100 |
X-Mdaemon-Deliver-To: | bug-Spreadsheet-XLSX@rt.cpan.org |
Delivered-To: | cpan-bug+Spreadsheet-XLSX@hipster.bestpractical.com |
Subject: | Re: [do-/eludia] Spreadsheet::XLSX column limitation (#24) |
Return-Path: | <prvs=115511c799=Denby.Angus@kisters.com.au> |
X-Mdav-Result: | clean |
X-Envelope-From: | Denby.Angus@kisters.com.au |
X-RT-Mail-Extension: | spreadsheet-xlsx |
X-Original-To: | cpan-bug+Spreadsheet-XLSX@hipster.bestpractical.com |
X-Spam-Check-BY: | la.mx.develooper.com |
Date: | Wed, 14 Dec 2016 08:02:23 +1000 |
X-Spam-Level: | |
X-Return-Path: | prvs=115511c799=Denby.Angus@kisters.com.au |
To: | Mike Blackwell <bug-Spreadsheet-XLSX@rt.cpan.org> |
X-Mdhelo: | kisters-ac1.kisters.de |
From: | Denby Angus <Denby.Angus@kisters.com.au> |
X-RT-Interface: | |
Content-Length: | 0 |
content-type: | text/plain; charset="utf-8" |
Content-Transfer-Encoding: | base64 |
X-RT-Original-Encoding: | utf-8 |
Content-Length: | 2866 |
content-type: | text/html; charset="utf-8" |
Content-Transfer-Encoding: | base64 |
X-RT-Original-Encoding: | utf-8 |
Content-Length: | 5726 |
Hi Mike
I contacted Dmitry Ovsyanko and he led me to you.
We use this module all the time in custom scripts for our clients.
I have recently encountered a workbook with sheets containing more than 702 columns (i.e. beyond column ZZ); the module doesn't read beyond column ZZ.
I have located the issue in your module and made a local hack but obviously I'd prefer that the source be updated so everyone can benefit.
The change requires the replacement of line 99
if (/^\<c\s*.*?\s*r=\"([A-Z])([A-Z]?)(\d+)\"/) {
with
if (/^\<c\s*.*?\s*r=\"([A-Z])([A-Z]*)(\d+)\"/) {
and the replacement of sub __decode_cell_name:
sub __decode_cell_name {
my ($letter1, $letter2, $digits) = @_;
my $col = ord($letter1) - 65;
if ($letter2) {
$col++;
$col *= 26;
$col += (ord($letter2) - 65);
}
my $row = $digits - 1;
return ($row, $col);
}
with
sub __decode_cell_name {
my ($letter1, $letter2, $digits) = @_;
my $col = ord($letter1) - 65;
while (my $c = substr($letter2, 0, 1, '')) {
$col++;
$col *= 26;
$col += (ord ($c) - 65);
}
my $row = $digits - 1;
return ($row, $col);
}
Would you be willing to implement this update (or similar code) to fix this limitation?
Thanks
Denby
Denby Angus - KISTERS Pty. Ltd. - Unit 4A, 24 Mahony Court, P.O.Box 3476 - 2611 Weston Creek - Australia
Phone: +61 2 6154 5213 | Fax: +61 2 6288 9061 | E-Mail: Denby.Angus@kisters.com.au | WWW: www.kisters.com.au
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorised copying, disclosure or distribution of the material in this e-mail is strictly forbidden.
From: do- <notifications@github.com>
To: do-/eludia <eludia@noreply.github.com>
Cc: denbyangus <denby.angus@kisters.com.au>, Author <author@noreply.github.com>
Date: 14/12/2016 03:46 AM
Subject: Re: [do-/eludia] Spreadsheet::XLSX column limitation (#24)
Sorry denbyangus, I've abandoned Spreadsheet::XLSX 8 years ago, and here is not the place to post related fixes. If http://search.cpan.org/~mikeb/ don't answer, the project is well and sure dead. But please feel free to fork the codebase and start yous one.
I contacted Dmitry Ovsyanko and he led me to you.
We use this module all the time in custom scripts for our clients.
I have recently encountered a workbook with sheets containing more than 702 columns (i.e. beyond column ZZ); the module doesn't read beyond column ZZ.
I have located the issue in your module and made a local hack but obviously I'd prefer that the source be updated so everyone can benefit.
The change requires the replacement of line 99
if (/^\<c\s*.*?\s*r=\"([A-Z])([A-Z]?)(\d+)\"/) {
with
if (/^\<c\s*.*?\s*r=\"([A-Z])([A-Z]*)(\d+)\"/) {
and the replacement of sub __decode_cell_name:
sub __decode_cell_name {
my ($letter1, $letter2, $digits) = @_;
my $col = ord($letter1) - 65;
if ($letter2) {
$col++;
$col *= 26;
$col += (ord($letter2) - 65);
}
my $row = $digits - 1;
return ($row, $col);
}
with
sub __decode_cell_name {
my ($letter1, $letter2, $digits) = @_;
my $col = ord($letter1) - 65;
while (my $c = substr($letter2, 0, 1, '')) {
$col++;
$col *= 26;
$col += (ord ($c) - 65);
}
my $row = $digits - 1;
return ($row, $col);
}
Would you be willing to implement this update (or similar code) to fix this limitation?
Thanks
Denby
Denby Angus - KISTERS Pty. Ltd. - Unit 4A, 24 Mahony Court, P.O.Box 3476 - 2611 Weston Creek - Australia
Phone: +61 2 6154 5213 | Fax: +61 2 6288 9061 | E-Mail: Denby.Angus@kisters.com.au | WWW: www.kisters.com.au
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorised copying, disclosure or distribution of the material in this e-mail is strictly forbidden.
From: do- <notifications@github.com>
To: do-/eludia <eludia@noreply.github.com>
Cc: denbyangus <denby.angus@kisters.com.au>, Author <author@noreply.github.com>
Date: 14/12/2016 03:46 AM
Subject: Re: [do-/eludia] Spreadsheet::XLSX column limitation (#24)
Sorry denbyangus, I've abandoned Spreadsheet::XLSX 8 years ago, and here is not the place to post related fixes. If http://search.cpan.org/~mikeb/ don't answer, the project is well and sure dead. But please feel free to fork the codebase and start yous one.
—
You are receiving this because you authored the thread.
Reply to this email directly, view
it on GitHub, or mute
the thread.