PHP: Membuat report dengan library PHPReport
Note : Library PHPReport sudah tidak di maintain oleh developer silahkan baca artikel baru penjelasan menggunakan library PHP_XLSXWriter di bawah ini
Singkat cerita lagi cari-cari framework buat reporting di web, dengan fungsi export ke excel dan pdf, setelah nyoba sana sini, framework seperti Kooreport, dengan fungsi yang cukup mengiurkan, akhirnya ketemu dengan PHPReport.
PHPReport mempunyai feature untuk export ke excel dan pdf, dan juga dapat mengenerate printout berdasarkan template dari excel, setelah penjajakan, feature ini sangat berguna untuk printout invoice yang bs diubah2 sesuai kebutuhan.
Kalo gitu langsung saja step menggunakan PHPReport:
- Silahkan download librarynya ke https://github.com/vernes/PHPReport
- Jalankan composer untuk download PHPExcel yang dibutuhkan library PHPReport
- Download juga mpdf versi 6.0 dilink http://www.mpdf1.com/mpdf/index.php untuk fungsi export ke pdf
- Letakkan mpdf ke folder vendor dan rename folder ke mpdf60
- Buat file sample testing dgn nama print-pdf-sample.php berikut
<?php
include 'PHPReport.php';
$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
//$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
//$rendererLibrary = 'tcPDF5.9';
$rendererLibrary = 'mpdf60';
//$rendererLibrary = 'domPDF0.6.0beta3';
$rendererLibraryPath = dirname(__FILE__).'/vendor/' . $rendererLibrary;
PHPExcel_Settings::setPdfRenderer($rendererName,$rendererLibraryPath);
//which template to use
if(isset($_GET['template']))
$template=$_GET['template'];
else
$template='invoice.xls';
//set absolute path to directory with template files
$templateDir='examples\\template\\';
//we get some products, e.g. from database
$products=array(
array('description'=>'Example product','qty'=>2,'price'=>4.5,'total'=>9),
array('description'=>'Another product','qty'=>1,'price'=>13.9,'total'=>13.9),
array('description'=>'Super product!','qty'=>3,'price'=>1.5,'total'=>4.5),
array('description'=>'Yet another great product','qty'=>2,'price'=>10.8,'total'=>21.6),
array('description'=>'Awesome','qty'=>1,'price'=>19.9,'total'=>19.9)
);
//set config for report
$config=array(
'template'=>$template,
'templateDir'=>$templateDir
);
$R=new PHPReport($config);
$R->load(array(
array(
'id'=>'inv',
'data'=>array('date'=>date('Y-m-d'), 'number'=>312,
'customerid'=>12,'orderid'=>517,
'company'=>'Example Inc.',
'address'=>'Some address',
'city'=>'Some City, 1122',
'phone'=>'+111222333'),
'format'=>array('date'=>array('datetime'=>'d/m/Y'))
),
array(
'id'=>'prod',
'repeat'=>true,
'data'=>$products,
'minRows'=>0,
'format'=>array(
'price'=>array('number'=>array('prefix'=>'$','decimals'=>2)),
'total'=>array('number'=>array('prefix'=>'$','decimals'=>2))
)
),
array(
'id'=>'total',
'data'=>array('price'=>68.9),
'format'=>array(
'price'=>array('number'=>array('prefix'=>'$','decimals'=>2))
)
)
)
);
echo $R->render('pdf');
exit();
Berikut sample file yang bisa langsung dipraktekkan, namun minus library phpexcel dan mpdf60.
Karena terlalu besar jika di include dlm sample file. Silahkan download dan pastikan hasil download di extract sesuai dengan folder dalam vendor.
Selamat mencoba
kalau data nya diganti dengan database