A co-worker, Chris Smith, created a very elegant Perl program to parse a Microsoft Excel XLS file for me some time ago. I recently modified that program to convert what was essentially a "glossary" in an Access database.
I first saved the Access database table as an Excel file. Then I used the following Perl program to extract the contents of the second and third columns from that file, and write them out to another file. The output file was in a Wiki (technically TWiki) format.
Perl Excel example
I hope the Perl program shown (named Perl_XLS_Reader.pl) below makes sense.
#!/usr/local/bin/perl
#######################################################################
##
#######################################################################
## Define Variables
#######################################################################
## Path Preferences
$path_to_excel_file = "C:/Work2/Glossary_AccessToWiki/Glossary.xls";
$path_to_output_file = "C:/Work2/Glossary_AccessToWiki/Glossary.wiki";
## Begin Program
#######################################################################
use Spreadsheet::ParseExcel;
do_main();
## Subroutines
#######################################################################
sub do_main
{
my ($oBook, $iR, $iC, $oWkS, $oWkC);
$oBook = Spreadsheet::ParseExcel::Workbook->Parse($path_to_excel_file);
open(FILE_OUT, "> $path_to_output_file");
foreach my $oWkS (@{$oBook->{Worksheet}})
{
for (my $iR = $oWkS->{MinRow}; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++)
{
print FILE_OUT " [[" . $oWkS->{Cells}[$iR][1]->Value . "]]: " . $oWkS->{Cells}[$iR][2]->Value . "\n";
}
}
close(FILE_OUT);
}
If anyone would like to have an explanation of how this Perl XLS reader program works, just leave me a message below, and I'll be glad to write more. In the meantime, feel free to use this Perl program for your own Excel XLS file reading needs.

