There are two main ways to build Excel, Word, and PowerPoint documents using PHP. The first is by using the COM library (only if you are using a Windows server) and the other is by using a more standardized approach such as HTML or CSV.
Dynamically creating a word document:
<?php
$word = new COM(‘word.application’);$word->Visible = 0;
$word->Documents->Add();
$word->Selection->PageSetup->LeftMargin = ’2′;
$word->Selection->PageSetup->RightMargin = ’2′;//Setup the font
$word->Selection->Font->Name = ’Verdana’;
$word->Selection->Font->Size = 8;//Write some text
$word->Selection->TypeText(‘This is a test document’);
//Save the document as DOC file
$word->Documents[1]->SaveAs(‘c:\\docs\\test1.doc’);//quit and release COM resources
$word->quit();
$word->Release();
$word = null;?>
Dynamically creating an excel document
<?php
$excel = new COM(‘excel.application’);
$excel->Visible = 0;//Create a new workbook
$wkb = $excel->Workbooks->Add();
$sheet = $wkb->Worksheets(1);//This code adds the text ‘myvalue’ on row 2, column 4
$sheet->activate;
$cell = $sheet->Cells(2,4);
$cell->Activate;
$cell->value = ’myvalue’;$wkb->SaveAs(‘C:\docs\test.xls’);
//close and free resources
$wkb->Close(false);
$excel->Workbooks->Close();
$excel->Quit();
?>
Dynamically creating a powerpoint presentation
<?php
$powerpnt = new COM(‘powerpoint.application’);
//Creating a new presentation
$pres=$powerpnt->Presentations->Add();
//Adds the first slide. ’12′ means blank slide
$pres->Slides->Add(1,12);
//Adds another slide. ’10′ means a slide with a clipart and text
$pres->Slides->Add(2,10);
//Adds a textbox
$pres->Slides[1]->Shapes->AddTextbox(1,20,50,300,40);
//Save the document as PPT file
$powerpnt->Presentations[1]->SaveAs(‘C:\Docs\test1.ppt’);//free resources and quit powerpoint
$powerpnt->quit();
?>
How to find Word, Excel, and Powerpoint functions
The following will show you all of the functions that are possible when accessing Microsoft Office components through php:

- Open Microsoft Word, Excel, or Powerpoint
- Press Alt+F11 to start the Visual Basic Editor
- Press F2
- Find “ThisDocument” on the left. In the right frame you’ll see the available variables and functions that can be used with the COM object.
You can generate a Word document using a free PHP (LGPL) library:phpdocx.com
« How to write PHP extensions Converting PHP scripts to dlls »
