Laravel PHPoffice PHPWord Download Doc File
Making doc file using laravel is not so much tough at all. We can use composer package phpoffice/phpword for making word document. Here in this blog we will show how to make word document file using phpoffice/phpword based on laravel framework. Let's start it
Install Composer Package phpoffice/phpword
composer require phpoffice/phpword
Make WordDocumentController
php artisan make:controller WordDocumentController
WordDocumentController
namespace App\Http\Controllers; use PhpOffice\PhpWord\IOFactory; use PhpOffice\PhpWord\PhpWord; class WordDocumentController extends Controller { public function createWordDocument() { // Create a new PHPWord object $phpWord = new PhpWord(); // Add a new section to the document $section = $phpWord->addSection(); // Add a title $section->addTitle('Sample Word Document', 1); // Add text $section->addText(fake()->text(1000)); $section->addTextBreak(); // Add a table $table = $section->addTable(); // Define table styles $boldStyle = ['bold' => true]; $cellRowSpan = ['vMerge' => 'restart']; $cellRowContinue = ['vMerge' => 'continue']; $cellColSpan = ['gridSpan' => 3]; $cellHCentered = ['alignment' => 'center']; $cellVCentered = ['valign' => 'center']; // Add a row for the header $table->addRow(); $table->addCell(3000, $cellVCentered)->addText('Name', $boldStyle); $table->addCell(3000, $cellVCentered)->addText('Location', $boldStyle); $table->addCell(3000, $cellVCentered)->addText('Contact', $boldStyle); // Add data rows $table->addRow(); $table->addCell(3000)->addText('John Doe'); $table->addCell(3000)->addText('New York'); $table->addCell(3000)->addText('[email protected]'); $table->addRow(); $table->addCell(3000)->addText('Jane Smith'); $table->addCell(3000)->addText('Los Angeles'); $table->addCell(3000)->addText('[email protected]'); // Save the document $fileName = 'SampleDocument.docx'; $filePath = storage_path($fileName); $writer = IOFactory::createWriter($phpWord, 'Word2007'); $writer->save($filePath); // Return the document as a response for download return response()->download($filePath)->deleteFileAfterSend(true); } }
Define Necessary Route
use App\Http\Controllers\WordDocumentController; use Illuminate\Support\Facades\Route; Route::get('/make-word-file', [WordDocumentController::class, 'createWordDocument']);
Access to Route in Browser
Now access route http://127.0.0.1:8000/make-word-file and SampleDocument.docx will start downloading
Here is the expected downloaded docx file
Hope that, this blog will help you to create your document file using phpoffice/phpword. If you think this blog helps you a lot, please visit regularly and keep in touch