I have been trying to generate excel of database earlier I was trying this with mysql And the code was working but when I started trying with SQL-SERVER I am facing several issues Like excel is getting generated but with only column names it is unable to fetch data stored inside it and my error log is also not generating anything I am sharing my code too except the designing part .. feel free to edit my code and any help would be highly appreciated
<?php
session_start();
date_default_timezone_set("Asia/Kolkata");
ini_set('display_errors',1);
ini_set('log_errors',1);
ini_set('error_log',dirname(__FILE__).'/errorlog.txt');
error_reporting(E_ALL);
$serverName = "192.168.22.68"; //serverName\instanceName
$connectionInfo = array( "Database"=>"Interopdb", "UID"=>"uatkrasqluser", "PWD"=>"CV!u@t2018");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if($conn) {
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Writer\Xls;
use PhpOffice\PhpSpreadsheet\Writer\Csv;
if(isset($_POST['export_excel_btn']))
{
$file_ext_name = $_POST['export_file_type'];
$fileName = "student-sheet";
$student = "SELECT * FROM priyat";
$query_run = sqlsrv_query($conn, $student, array(), array("Scrollable"=>"buffered"));
if(sqlsrv_num_rows($query_run) > 0)
{
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'ID');
$sheet->setCellValue('B1', 'Full Name');
$sheet->setCellValue('C1', 'Email');
$sheet->setCellValue('D1', 'Phone');
$sheet->setCellValue('E1', 'Course');
$rowCount = 2;
if (is_array($query_run) || is_object($query_run))
{
foreach($query_run as $data)
{
$sheet->setCellValue('A'.$rowCount, $data['id']);
$sheet->setCellValue('B'.$rowCount, $data['fullname']);
$sheet->setCellValue('C'.$rowCount, $data['email']);
$sheet->setCellValue('D'.$rowCount, $data['phone']);
$sheet->setCellValue('E'.$rowCount, $data['course']);
$rowCount++;
while($row = sqlsrv_fetch_array($query_run, SQLSRV_FETCH_ASSOC)) {
var_dump($row);
}
}
}
if($file_ext_name == 'xlsx')
{
$writer = new Xlsx($spreadsheet);
$final_filename = $fileName.'.xlsx';
}
elseif($file_ext_name == 'xls')
{
$writer = new Xls($spreadsheet);
$final_filename = $fileName.'.xls';
}
elseif($file_ext_name == 'csv')
{
$writer = new Csv($spreadsheet);
$final_filename = $fileName.'.csv';
}
// $writer->save($final_filename);
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attactment; filename="'.urlencode($final_filename).'"');
$writer->save('php://output');
}
else
{
$_SESSION['message'] = "No Record Found";
header('Location: index.php');
exit(0);
}
}
?>