I am trying to export db rows using fputcsv() in csv file. how i can add heading on first, center align then columns then data my code works well without heading. I know there is many api’s but is this possible with in my code.
Here is my code:-
Enquiry Report id name class func 1 rk ba call() 2 bk bd that() function exportdata_to_excel($details) { // filename for download $filename = date("Y-m-d").".csv"; header('Content-Type: text/csv'); header("Content-Disposition: attachment; filename="$filename""); $out = fopen("php://output", 'w'); $flag = false; //$result = $orderDetails; while($row = mysql_fetch_assoc($details)) { $arr =array('Enquiry id'=>$row['id'],'Date'=>$row['created_on'],'Name'=>$row['name'], 'Email'=>$row['email'], 'Telephone'=>$row['telephone'], 'Customer Request'=>$row['customer_request'], 'Special Request'=>$row['special_request']); if(!$flag) { // display field/column names as first row fputcsv($out, array_keys($arr), ',', '"'); $flag = true; } fputcsv($out, array_values($arr), ',', '"'); } fclose($out); exit(); }
Advertisement
Answer
This worked for me.
function downloadCSV($data) { $filename = date("Y-m-d").".csv"; header('Content-type: application/csv'); header('Content-Disposition: attachment; filename=' . $filename); header("Content-Transfer-Encoding: UTF-8"); $f = fopen('php://output', 'a'); fputcsv($f, array_keys($data[0])); foreach ($data as $row) { fputcsv($f, $row); } fclose($f); }