| 
<?php
 require_once '../class/Excel.php';
 
 use agoussec\class\Export;
 $export = new Export();
 
 
 
 /********************************************************************************************************|
 *                              WAY 1  FOR CREATING DATABASE CONNECTIONS                                 |
 *_______________________________________________________________________________________________________|
 *
 *
 *      $exportObject = new Export('localhost', 'dbuser', 'password', 'database');
 *
 *
 *      EXPLAIN - PASS DATABASE CREDENTIALSE AS PARAMETER WHEN CREATING OBJECT OF CLASS
 *
 */
 
 
 /********************************************************************************************************|
 *                              WAY 2  FOR CREATING DATABASE CONNECTIONS                                 |
 *_______________________________________________________________________________________________________|
 *
 *
 *      try {
 *         $Conn = new PDO('mysql:host=localhost;dbname=dbname', 'dbuser', "dbpassword");
 *          $Conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 *      } catch(PDOException $e) {
 *          return $e->getMessage();
 *       }
 *
 *
 *       $export->setConnection($Conn);
 *
 *
 *      EXPLAIN - CREATE PDO CONNECTION AND PASS PDO CONNECTION OBJECT TO setConnection($CONNECTION) LIKE ABOVE
 *
 */
 
 
 try {
 $Conn = new PDO('mysql:host=localhost;dbname=dbname', 'dbuser', "dbpassword");
 $Conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 } catch(PDOException $e) {
 return $e->getMessage();
 }
 $export->setConnection($Conn);
 
 if (isset($_REQUEST["export"])) {
 
 $sql = "SELECT
 table2.column1 as `Column 1 `,
 table3.column2 as `Column 2`,
 table1.column3 as `Column 3`,
 table1.column4 as `Column 4`,
 table1.column5 as `Column 5`,
 table1.column6 as `Column 6`,
 table1.column7 as `Column 7`,
 table1.column8 as `Column 8`,
 table1.column9  as `Column 9`
 FROM `table1`
 left JOIN table2 ON table2.id = table1.table2id
 left JOIN table3 ON table3.id = table1.table3id
 WHERE table1.status = 1";
 
 
 $export->setQuery($sql);
 
 /********************************************************************************************************|
 *                              EXPLANATION - DATA [OPTIONAL]                                             |
 *________________________________________________________________________________________________________|
 *
 *      $export->setData($ARRAY);  // OPTIONAL
 *
 *      DEF -  ROWS OF DATABASE TABLE DATA IN ARRAY
 *
 *      EXPLAIN - YOU CAN DIRECTLY PASS DATABASE TABLE ROWS AND THEN NO NEED TO CREATE DATABASE CONNECTION AND PASSING MYSQL QUERIES
 *
 *      PARAM - $ROWARRA
 *
 *      EXMAPLE -
 *           $export->setData('dsdada'); // ERROR - Data should be Array!
 *           $export->setData(); // ERROR - Data can not be empty!
 */
 
 
 
 
 
 
 /********************************************************************************************************|
 *                              EXPLANATION - FILENAME [OPTIONAL]                                         |
 *________________________________________________________________________________________________________|
 *
 *      $export->setFilename('setFilename');  // OPTIONAL
 *
 *      DEF - FILENAME OF GENERATED EXCEL FILE (CURRENT TIMESTAMP WILL BE USER WHEN NOT INITIALISING)
 *
 *      EXPLAIN - THIS METHOD WILL ACCEPT STRING DATA TYPE AS PARAMETER
 *
 *      PARAM - 'FILENAME'
 *
 */
 $export->setFilename('report-excel');
 
 
 /*******************************************************************************************************|
 *                              EXPLANATION - HEADERROW [OPTIONAL]                                       |
 *_______________________________________________________________________________________________________|
 *
 *      $export->setHeaderRow(true);  // OPTIONAL
 *
 *      DEF - HEADERROW IS COLUMNS NAME OF EXCEL SHEET ORIGINATED FROM DATABASE TABLE COLUMN NAME
 *
 *      EXPLAIN - THIS METHOD WILL ACCEPT BOOLEAN DATA TYPE AS PARAMETER
 *
 *      PARAM - [TRUE, FALSE]
 *
 *           TRUE - FOR ADD DATABASE TABLE COLUMN NAME IN EXCEL SHEET (YOU CAN REDEFINE COULUMN NAME USING ALIASE NAME SELECT SQL QUERY )
 *           FALSE - FOR NOT USING COULUMN NAME IN EXCEL SHEET
 *
 */
 
 $export->setHeaderRow(true);
 
 
 /*******************************************************************************************************|
 *                              EXPLANATION - TIMESTAMP [OPTIONAL]                                       |
 *_______________________________________________________________________________________________________|
 *
 *      $export->setTimestamp(true);  // OPTIONAL
 *
 *      DEF - CURRENT TIMESTAMP WILL BE ADDED IN EXCEL FILENAME
 *
 *      EXPLAIN - THIS METHOD WILL ACCEPT BOOLEAN DATA TYPE AS PARAMETER
 *
 *      PARAM - [TRUE, FALSE]
 *
 *           TRUE - FOR USING TIMESTAMP IN FILENAME   // report-excel-1616836723.xls
 *           FALSE - FOR NOT USING TIMESTAMP IN FILENAME   // report-excel.xls
 *
 */
 $export->setTimestamp(true);
 $export->getFile();
 }
 
 |