quytvoday / htmlphpexcel
A php library based on PHPExcel to convert html tables to Excel files, including styling.
1.3
2024-08-19 18:43 UTC
Requires
- php: ^7.1
- doctrine/collections: ^1.6
- phpoffice/phpspreadsheet: ^1.6
Requires (Dev)
- phpunit/phpunit: ^5.7
README
This is a php library based on PhpSpreadsheet which simplifies converting html tables to excel files. It allows styling right within the html template with specific attributes.
Installation
Add HtmlPhpExcel to your composer.json:
composer require quytvoday/htmlphpexcel
Simple example
<?php require_once('../vendor/autoload.php'); $html = '<table><tr><th>Column A</th><th>Column B</th></tr><tr><td>Value A</td><td>Value B</td></tr></table>'; $htmlPhpExcel = new \Ticketpark\HtmlPhpExcel\HtmlPhpExcel($html); // Create and output the excel file to the browser $htmlPhpExcel->process()->output(); // Alternatively create the excel and save to a file $htmlPhpExcel->process()->save('myFile.xlsx'); // or get the \PhpOffice\PhpSpreadsheet\Spreadsheet object to do further work with it $phpExcelObject = $htmlPhpExcel->process()->getExcelObject();
For a more complex example with styling options see example directory.
Styling
There is support for specific html attributes to allow styling of the excel output. The attributes expect the content to be json_encoded.
_excel-styles
Supports everything which is possible with PhpSpreadsheet'sapplyFromArray()
method (also see here).
Example:
<table> <tr> <td _excel-styles='{"font":{"size":16,"color":{"rgb":"FF0000"}}}'>Foo</td> </tr> </table>
_excel-dimensions
Supports changing dimensions of rows (when applied to a<tr>
or<td>
) or column (when applied to a<td>
),
Example:
<table> <tr _excel-dimensions='{"row":{"rowHeight":50}}'> <td _excel-dimensions='{"column":{"width":20}}'>Foo</td> </tr> </table>
_excel-explicit
Supports applying an explicit cell value type.
Example:
<table> <tr> <td _excel-explicit='PhpSpreadsheet_Cell_DataType::TYPE_STRING'>0022</td> </tr> </table>