summaryrefslogtreecommitdiffstats
path: root/lib/Spreadsheet/ParseXLSX.pm
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-08-29 15:41:59 -0400
committerJesse Luehrs <doy@tozt.net>2013-08-29 15:41:59 -0400
commit4e03d41c19ee0f70f076934455844fe40b122f3f (patch)
treea4b39266bc12de61da035630c9674607b4ba6ce6 /lib/Spreadsheet/ParseXLSX.pm
parent5ff1728282b6bccaa553f97bf4b8d1fc121f92c3 (diff)
downloadspreadsheet-parsexlsx-4e03d41c19ee0f70f076934455844fe40b122f3f.tar.gz
spreadsheet-parsexlsx-4e03d41c19ee0f70f076934455844fe40b122f3f.zip
fix this algorithm again
Diffstat (limited to 'lib/Spreadsheet/ParseXLSX.pm')
-rw-r--r--lib/Spreadsheet/ParseXLSX.pm9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/Spreadsheet/ParseXLSX.pm b/lib/Spreadsheet/ParseXLSX.pm
index 8159fa8..209ae6f 100644
--- a/lib/Spreadsheet/ParseXLSX.pm
+++ b/lib/Spreadsheet/ParseXLSX.pm
@@ -575,9 +575,12 @@ sub _cell_to_row_col {
my ($col, $row) = $cell =~ /([A-Z]+)([0-9]+)/;
- (my $ncol = $col) =~ tr/A-Z/1-9A-Q/;
- $ncol = POSIX::strtol($ncol, 27);
- $ncol -= 1;
+ my $ncol = 0;
+ for my $char (split //, $col) {
+ $ncol *= 26;
+ $ncol += ord($char) - ord('A') + 1;
+ }
+ $ncol = $ncol - 1;
my $nrow = $row - 1;