I recently created a project on Google Code for PHP Excel Reader. This is a PHP library for reading MS Office Excel files that has existed on Sourceforge for quite a while but was no longer being maintained or enhanced. I needed to use it for a work project, so I put in some time to fix it and enhance it to make it more usable. I decided to put it up on Google Code in the hopes that others would find it useful.
[ PHP Excel Reader Project Home ]
Example
Microsoft Excel

<?php
require_once 'excel_reader2.php';
$xls = new Spreadsheet_Excel_Reader("example.xls");
echo '<table border="1">';
for ($row=1;$row<=$xls->rowcount();$row++) {
echo '<tr>';
for ($col=1;$col<=$xls->colcount();$col++) {
echo '<td>' . $xls->val($row,$col) . ' </td>';
}
echo '</tr>';
}
echo '</table>';
?>
HTML Output

Usage
$data = new Spreadsheet_Excel_Reader("test.xls"); Retrieve formatted value of cell (first or only sheet): $data->val($row,$col) Or using column names: $data->val(10,'AZ') From a sheet other than the first: $data->val($row,$col,$sheet_index) Retrieve cell info: $data->type($row,$col); $data->raw($row,$col); $data->format($row,$col); $data->formatIndex($row,$col); Get sheet size: $data->rowcount(); $data->colcount(); $data->sheets[0]['cells'][$i][$j] - data from $i-row $j-column $data->sheets[0]['numRows'] - count rows $data->sheets[0]['numCols'] - count columns $data->sheets[0]['cellsInfo'][$i][$j] - extended info about cell $data->sheets[0]['cellsInfo'][$i][$j]['type'] = "date" | "number" | "unknown" $data->sheets[0]['cellsInfo'][$i][$j]['raw'] = value if cell without format $data->sheets[0]['cellsInfo'][$i][$j]['format'] = Excel-style Format string of cell $data->sheets[0]['cellsInfo'][$i][$j]['formatIndex'] = The internal Excel index of format $data->sheets[0]['cellsInfo'][$i][$j]['colspan'] $data->sheets[0]['cellsInfo'][$i][$j]['rowspan']
If you are a gadget author, you’re probably interested in knowing how many users have your gadgets installed. There are a few ways to deduce this information, but none are perfect. I’m going to show you one way to generate useful information that is probably something you’re looking for.
If you’re like me, you know you should back up your important data but you don’t. I’ve experienced the panic of thinking files are gone several times, and at those moments I swore to myself that I would start backing up my stuff so this never happened again. But I didn’t. Until now.