Spreadsheet::XLSX − Perl extension for reading MS Excel 2007 files;
use Text::Iconv;
my $converter =
Text::Iconv−>new("utf−8",
"windows−1251");
# Text::Iconv is not really required.
# This can be any object with the convert method. Or
nothing.
use Spreadsheet::XLSX;
my $excel = Spreadsheet::XLSX−>new('test.xlsx',
$converter);
foreach my $sheet (@{$excel−>{Worksheet}}) {
printf("Sheet: %s\n", $sheet−>{Name});
$sheet−>{MaxRow} ||= $sheet−>{MinRow};
foreach my $row ($sheet−>{MinRow} ..
$sheet−>{MaxRow}) {
$sheet−>{MaxCol} ||= $sheet−>{MinCol};
foreach my $col ($sheet−>{MinCol} ..
$sheet−>{MaxCol}) {
my $cell = $sheet−>{Cells}[$row][$col];
if ($cell) {
printf("( %s , %s ) => %s\n", $row, $col,
$cell−>{Val});
}
}
}
}
This module is a (quick and dirty) emulation of Spreadsheet::ParseExcel for Excel 2007 (.xlsx) file format. It supports styles and many of Excel’s quirks, but not all. It populates the classes from Spreadsheet::ParseExcel for interoperability; including Workbook, Worksheet, and Cell.
Spreadsheet::ParseXLSX
This module has some serious issues with the way it uses regexs for parsing the XML. I would strongly encourage switching to Spreadsheet::ParseXLSX which takes a more reliable approach.
Text::CSV_XS, Text::CSV_PP
Spreadsheet::ParseExcel
Spreadsheet::ReadSXC
Spreadsheet::BasicRead
for xlscat likewise functionality (Excel only)
Spreadsheet::ConvertAA
for an alternative set of cell2cr() / cr2cell() pair
Spreadsheet::Perl
offers a Pure Perl implementation of a spreadsheet engine. Users that want this format to be supported in Spreadsheet::Read are hereby motivated to offer patches. It’s not high on my todo-list.
xls2csv
<https://metacpan.org/release/KEN/xls2csv−1.07> offers an alternative for my "xlscat −c", in the xls2csv tool, but this tool focusses on character encoding transparency, and requires some other modules.
Spreadsheet::Read
read the data from a spreadsheet (interface module)
Dmitry Ovsyanko, <[email protected]>, http://eludia.ru/wiki/
Patches by:
Steve Simms
Joerg Meltzer
Loreyna Yeung
Rob Polocz
Gregor Herrmann
H.Merijn Brand
endacoe
Pat Mariani
Sergey Pushkin
Thanks to TrackVia Inc. (http://www.trackvia.com) for paying for Rob Polocz working time.
Copyright (C) 2008 by Dmitry Ovsyanko
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.