Let’s create a simple spreadsheet with some data and save it as an Excel file.
1
Create a new PHP file
Create a file called create-spreadsheet.php in your project directory.
2
Add the basic code
create-spreadsheet.php
<?phprequire 'vendor/autoload.php';use PhpOffice\PhpSpreadsheet\Spreadsheet;use PhpOffice\PhpSpreadsheet\Writer\Xlsx;// Create new Spreadsheet object$spreadsheet = new Spreadsheet();// Set document properties$spreadsheet->getProperties() ->setCreator('Your Name') ->setTitle('My First Spreadsheet') ->setSubject('PhpSpreadsheet Test') ->setDescription('Test document for PhpSpreadsheet');// Add data to cells$sheet = $spreadsheet->getActiveSheet();$sheet->setCellValue('A1', 'Hello') ->setCellValue('B2', 'World!');// Rename worksheet$sheet->setTitle('My First Sheet');// Save to file$writer = new Xlsx($spreadsheet);$writer->save('hello-world.xlsx');echo "Spreadsheet created successfully!\n";
3
Run the script
php create-spreadsheet.php
This will create a file named hello-world.xlsx in your current directory.
Create and manage multiple worksheets in a single workbook.
multiple-sheets.php
<?phprequire 'vendor/autoload.php';use PhpOffice\PhpSpreadsheet\Spreadsheet;use PhpOffice\PhpSpreadsheet\Writer\Xlsx;$spreadsheet = new Spreadsheet();// First sheet$sheet1 = $spreadsheet->getActiveSheet();$sheet1->setTitle('Sales');$sheet1->setCellValue('A1', 'Q1 Sales');$sheet1->setCellValue('A2', 1000);// Create second sheet$sheet2 = $spreadsheet->createSheet();$sheet2->setTitle('Expenses');$sheet2->setCellValue('A1', 'Q1 Expenses');$sheet2->setCellValue('A2', 500);// Create third sheet$sheet3 = $spreadsheet->createSheet();$sheet3->setTitle('Summary');$sheet3->setCellValue('A1', 'Profit');$sheet3->setCellValue('A2', '=Sales!A2-Expenses!A2');// Set first sheet as active$spreadsheet->setActiveSheetIndex(0);$writer = new Xlsx($spreadsheet);$writer->save('multi-sheet.xlsx');echo "Multi-sheet spreadsheet created!\n";