yidas / phpexcel-helper
基于 PHPExcel,以简单和艺术的方式创建 Excel 文件
1.3.1
2018-02-07 09:00 UTC
Requires
- phpoffice/phpexcel: 1.*
README
基于 PHPExcel,以简单和艺术的方式创建 Excel 文件
PHPExcel 已不再维护,不应再使用。
您应迁移到这个库的后续版本 yidas/phpspreadsheet-helper。
概要
演示
\PHPExcelHelper::newExcel() ->addRow(['ID', 'Name', 'Email']) ->addRows([ ['1', 'Nick','myintaer@gmail.com'], ['2', 'Eric','eric@.....'], ]) ->output('My Excel');
安装
在您的项目中运行 Composer
composer require yidas/phpexcel-helper
然后根据您的 PHP 框架在 Composer 加载后调用它
require __DIR__ . '/vendor/autoload.php'; \PHPExcelHelper::newExcel();
使用方法
合并单元格
\PHPExcelHelper::newExcel() ->addRows([ [['value'=>'SN', 'row'=>2], ['value'=>'Language', 'col'=>2], ['value'=>'Block', 'row'=>2, 'col'=>2]], ['','English','繁體中文',['skip'=>2]], ]) ->addRows([ ['1', 'Computer','電腦','#15'], ['2', 'Phone','手機','#4','#62'], ]) ->output('Merged Excel');
PHPExcel 与工作表对象
// Get a new PHPExcel object $objPHPExcel = new \PHPExcel; $objPHPExcel->getProperties() ->setCreator("Nick Tsai") ->setTitle("Office 2007 XLSX Document"); // Get the actived sheet object $objPHPExcelSheet = $objPHPExcel->setActiveSheetIndex(0); $objPHPExcelSheet->setTitle('Sheet'); $objPHPExcelSheet->setCellValue('A1', 'SN'); // Inject PHPExcel Object and Sheet Object to Helper \PHPExcelHelper::newExcel($objPHPExcel) ->setSheet($objPHPExcelSheet) ->setRowOffset(1) // Point to 1nd row from 0 ->addRows([ ['1'], ['2'], ]); \PHPExcelHelper::output();
\PHPExcelHelper::newExcel() ->setSheet(0, 'Sheet') ->addRow(['SN']); // Get the PHPExcel object created by Helper $objPHPExcel = \PHPExcelHelper::getExcel(); $objPHPExcel->getProperties() ->setCreator("Nick Tsai") ->setTitle("Office 2007 XLSX Document"); // Get the actived sheet object created by Helper $objPHPExcelSheet = \PHPExcelHelper::getSheet(); $objPHPExcelSheet->setCellValue('A2', '1'); $objPHPExcelSheet->setCellValue('A3', '2'); \PHPExcelHelper::output();
多个工作表
\PHPExcelHelper::newExcel() ->setSheet(3, '4nd Sheet') ->addRow(['ID', 'Name']) ->addRows([ ['1', 'Nick'], ]); // Set another sheet object and switch to it \PHPExcelHelper::setSheet(1, '2nd Sheet') ->addRow(['SN', 'Title']) ->addRows([ ['1', 'Foo'], ]); \PHPExcelHelper::output('MultiSheets');
坐标与范围的映射
\PHPExcelHelper::newExcel() ->addRows([ [ ['value'=>'SN', 'row'=>2, 'key'=>'sn'], ['value'=>'Language', 'col'=>2, 'key'=>'lang'], ['value'=>'Block', 'row'=>2, 'col'=>2, 'key'=>'block'], ], [ '', ['value'=>'English', 'key'=>'lang-en'], ['value'=>'繁體中文', 'key'=>'lang-zh'], ['skip'=>2, 'key'=>'block-skip'], ], ]) ->addRows([ ['1', 'Computer','電腦','#15'], ['2', 'Phone','手機','#4','#62'], ]); // ->output('Merged Excel'); print_r(\PHPExcelHelper::getCoordinateMap()); print_r(\PHPExcelHelper::getRangeMap()); // print_r(\PHPExcelHelper::getColumnMap()); // print_r(\PHPExcelHelper::getRowMap()); echo "sn start cell: ". \PHPExcelHelper::getCoordinateMap('sn'); echo "\nsn start column: ". \PHPExcelHelper::getColumnMap('sn'); echo "\nsn start row: ". \PHPExcelHelper::getRowMap('sn'); echo "\nsn range: ". \PHPExcelHelper::getRangeMap('sn'); echo "\nAll range: ". \PHPExcelHelper::getRangeAll();
结果可能是
Array
(
[sn] => A1
[lang] => B1
[block] => D1
[lang-en] => B2
[lang-zh] => C2
[block-skip] => D2
)
Array
(
[sn] => A1:A2
[lang] => B1:C1
[block] => D1:E2
[lang-en] => B2:B2
[lang-zh] => C2:C2
[block-skip] => D2:E2
)
sn start cell: A1
sn start column: A
sn start row: 1
sn range: A1:A2
All range: A1:E4
单元格格式
- setWrapText(): 默认设置为所有单元格
- setAutoSize(): 默认设置为所有单元格(列)
\PHPExcelHelper::newExcel() ->addRow(['Title', 'Content']) ->addRows([ ['Basic Plan', "*Interface\n*Search Tool"], ['Advanced Plan', "*Interface\n*Search Tool\n*Statistics"], ]) ->setWrapText() // ->setWrapText('B2') ->setAutoSize() // ->setAutoSize('B') ->output('Formatted Excel');