Skip to content

Instantly share code, notes, and snippets.

@gridphp
Last active June 14, 2020 20:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gridphp/71f6e504682a2283362f5f347ecdae4c to your computer and use it in GitHub Desktop.
Save gridphp/71f6e504682a2283362f5f347ecdae4c to your computer and use it in GitHub Desktop.
PHPGrid export using PHPExcel - https://www.gridphp.com
<?php
/**
* PHP Grid Component
*
* @author Abu Ghufran <gridphp@gmail.com> - http://www.phpgrid.org
* @version 2.0.0
* @license: see license.txt included in package
*/
/**
* Basic Grid Sample
* You can use inline edit mode or dialog edit mode
*/
include_once("../../config.php");
include(PHPGRID_LIBPATH."inc/jqgrid_dist.php");
// Database config file to be passed in phpgrid constructor
$db_conf = array(
"type" => PHPGRID_DBTYPE,
"server" => PHPGRID_DBHOST,
"user" => PHPGRID_DBUSER,
"password" => PHPGRID_DBPASS,
"database" => PHPGRID_DBNAME2
);
$g = new jqgrid($db_conf);
$grid["caption"] = "Sample Grid";
$grid["autowidth"] = true;
// export PDF file params
$grid["export"] = array("format"=>"xls","filename"=>"my-file", "heading"=>"Invoice Details", "orientation"=>"landscape", "paper"=>"a4");
$g->set_options($grid);
$g->set_options($grid);
$g->table = "ScansReport1";
$g->set_actions(array(
"view"=>true, // allow/disallow delete
"export"=>true, // allow/disallow delete
"rowactions"=>false, // show/hide row wise edit/del/save option
"autofilter" => true, // show/hide autofilter for search
"search" => true // show single/multi field search condition (e.g. simple or advance)
)
);
$e["on_export"] = array("custom_export", null, false);
$g->set_events($e);
// custom on_export callback function
function custom_export($param)
{
// get array from query
$g = $param["grid"];
$arr = $g->get_all("select * from ScansReport1");
// create excel sheet
include PHPGRID_LIBPATH."inc/excel/".'PHPExcel/IOFactory.php';
$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->fromArray($arr, NULL, 'A1');
// write excel2007 standard xlsx
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="myFile.xlsx"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
}
$out = $g->render("list1");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" media="screen" href="../../lib/js/themes/redmond/jquery-ui.custom.css"></link>
<link rel="stylesheet" type="text/css" media="screen" href="../../lib/js/jqgrid/css/ui.jqgrid.css"></link>
<script src="../../lib/js/jquery.min.js" type="text/javascript"></script>
<script src="../../lib/js/jqgrid/js/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="../../lib/js/jqgrid/js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="../../lib/js/themes/jquery-ui.custom.min.js" type="text/javascript"></script>
</head>
<body>
<div>
<?php echo $out?>
</div>
<?php
/**
* Return first doc comment found in this file.
*
* @return string
*/
function getFileDocBlock()
{
$docComments = array_filter(
token_get_all( file_get_contents( __FILE__ ) ), function($entry) {
return $entry[0] == T_DOC_COMMENT;
}
);
$fileDocComment = array_shift( $docComments );
$fileDocComment = array_shift( $docComments );
return $fileDocComment[1];
}
echo getFileDocBlock();
?>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment