Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Export MySQL data to Excel in PHP

I'm trying to get my MySQL data to Excel file, but I'm having problems with Excel cells. All my text goes to one cell, I would like to have each row value in separate Excel cell. Here is my code:

$queryexport = (" SELECT username,password,fullname FROM ecustomer_users WHERE fk_customer='".$fk_customer."' ");  $row = mysql_fetch_assoc($queryexport);  $result = mysql_query($queryexport); $header = '';  for ($i = 0; $i < $count; $i++){    $header .= mysql_field_name($result, $i)."\t";    }  while($row = mysql_fetch_row($result)){    $line = '';    foreach($row as $value){           if(!isset($value) || $value == ""){                  $value = "\t";           }else{                  $value = str_replace('"', '""', $value);                  $value = '"' . $value . '"' . "\t";                  }           $line .= $value;           }    $data .= trim($line)."\n";    $data = str_replace("\r", "", $data);  if ($data == "") {    $data = "\nno matching records found\n";    } } header("Content-type: application/vnd.ms-excel; name='excel'"); header("Content-Disposition: attachment; filename=exportfile.xls"); header("Pragma: no-cache"); header("Expires: 0");  // output data echo $header."\n".$data;  mysql_close($conn);` 
like image 540
marc_s Avatar asked Mar 29 '13 07:03

marc_s


People also ask

How do I export data from MySQL database to Excel using PHP?

php // Connection $conn=mysql_connect('localhost','root',''); $db=mysql_select_db('excel',$conn); $filename = "Webinfopen. xls"; // File Name // Download file header("Content-Disposition: attachment; filename=\"$filename\""); header("Content-Type: application/vnd.

How do I export data from MySQL to Excel?

Within MySQL for Excel, Open a MySQL Connection, click the employee schema, Next, select the location table, click Edit MySQL Data, then choose Import to import the data into a new Microsoft Excel worksheet for editing.


1 Answers

Just Try With The Following :

PHP Part :

<?php /*******EDIT LINES 3-8*******/ $DB_Server = "localhost"; //MySQL Server     $DB_Username = "username"; //MySQL Username      $DB_Password = "password";             //MySQL Password      $DB_DBName = "databasename";         //MySQL Database Name   $DB_TBLName = "tablename"; //MySQL Table Name    $filename = "excelfilename";         //File Name /*******YOU DO NOT NEED TO EDIT ANYTHING BELOW THIS LINE*******/     //create MySQL connection    $sql = "Select * from $DB_TBLName"; $Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno()); //select database    $Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno());    //execute query  $result = @mysql_query($sql,$Connect) or die("Couldn't execute query:<br>" . mysql_error(). "<br>" . mysql_errno());     $file_ending = "xls"; //header info for browser header("Content-Type: application/xls");     header("Content-Disposition: attachment; filename=$filename.xls");   header("Pragma: no-cache");  header("Expires: 0"); /*******Start of Formatting for Excel*******/    //define separator (defines columns in excel & tabs in word) $sep = "\t"; //tabbed character //start of printing column names as names of MySQL fields for ($i = 0; $i < mysql_num_fields($result); $i++) { echo mysql_field_name($result,$i) . "\t"; } print("\n");     //end of printing column names   //start while loop to get data     while($row = mysql_fetch_row($result))     {         $schema_insert = "";         for($j=0; $j<mysql_num_fields($result);$j++)         {             if(!isset($row[$j]))                 $schema_insert .= "NULL".$sep;             elseif ($row[$j] != "")                 $schema_insert .= "$row[$j]".$sep;             else                 $schema_insert .= "".$sep;         }         $schema_insert = str_replace($sep."$", "", $schema_insert);         $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);         $schema_insert .= "\t";         print(trim($schema_insert));         print "\n";     }    ?> 

I think this may help you to resolve your problem.

like image 64
John Peter Avatar answered Sep 23 '22 12:09

John Peter