Old xls files were proprietary binary file formats, quite complicated, also known as Excel BIFF, you can find
New xlsx files are "standardized" open formats. It is basically a zip file (rename it to *.zip and extract) with few xml files inside
Some general information is available at http://en.wikipedia.org/wiki/Office_Open_XML
More detailed documentation is available from
Still even the new file format is quite complicated if you want to be able to do everything or anything. In that case reusing several man/years of development effort (including debugging) materialized in a form of an existing PHP library as suggested by @mark-baker is reasonable
If you just need to do a specific task, e.g. populate existing xlsx template file with some data then you only need
- a PHP functions for copying files
- a PHP functions to work with
zip files
- and a PHP functions to work with
xml files
- and the
documentation (from the links above) or an executable documentation in a form of Excel.exe
EDIT better links to the specification both for the old and for the new Excel file formats were provided by Mark Baker