kemper Posted March 7, 2008 Share Posted March 7, 2008 How can I code to export a table to Excel (or cvs file)? I have my youth sports schedule that I am repeatedly asked to send as Excel file. I want to have a link for my members to download to Excel (preferred, but can settle for cvs file). Assistance is greatly appreciated. Link to comment https://forums.phpfreaks.com/topic/94819-export-table-to-xls-or-cvs/ Share on other sites More sharing options...
AndyB Posted March 7, 2008 Share Posted March 7, 2008 For better or worse (and only as an example), here's a script I use. Adjustments should be obvious: <?php include("support/db-conn.php"); mysql_connect($db_host, $db_login, $db_pass) or die ("Can't connect!"); mysql_select_db($db_name) or die ("Can't open database!"); $db_table = "dm_scratchpad"; $p="scratchpad_". date("Y-m-d"). ".csv"; $CSV = "Posted_LocalDate,Posted_LocalTime,Message,Importance,Deleted_LocalTime\n"; // headers $query = "SELECT * FROM $db_table ORDER by posted ASC"; $result = mysql_query($query); while($myrow = mysql_fetch_array($result)) { $CSV.= $myrow[posted]. ","; $CSV.= $myrow[timed]. ","; $message = str_replace("\r\n"," ",$myrow['message']); $message = str_replace(","," ", $message); $CSV.= $message. ","; $CSV.= $myrow[importance]. ","; $CSV.= $myrow[deleted]. "\n"; } header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"$p\""); header("Content-Transfer-Encoding: binary"); if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')){ // IE cannot download from sessions without a cache header('Cache-Control: public'); } echo $CSV; exit; ?> Link to comment https://forums.phpfreaks.com/topic/94819-export-table-to-xls-or-cvs/#findComment-485665 Share on other sites More sharing options...
kemper Posted March 7, 2008 Author Share Posted March 7, 2008 Thanks. I did find a working script while Googling. <?php $host = 'localhost'; $user = 'mysqlUser'; $pass = 'myUserPass'; $db = 'myDatabase'; $table = 'products_info'; $file = 'export'; $link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error()); mysql_select_db($db) or die("Can not connect."); $result = mysql_query("SHOW COLUMNS FROM ".$table.""); $i = 0; if (mysql_num_rows($result) > 0) { while ($row = mysql_fetch_assoc($result)) { $csv_output .= $row['Field'].", "; $i++; } } $csv_output .= "\n"; $values = mysql_query("SELECT * FROM ".$table.""); while ($rowr = mysql_fetch_row($values)) { for ($j=0;$j<$i;$j++) { $csv_output .= $rowr[$j].", "; } $csv_output .= "\n"; } $filename = $file."_".date("Y-m-d_H-i",time()); header("Content-type: application/vnd.ms-excel"); header("Content-disposition: csv" . date("Y-m-d") . ".csv"); header( "Content-disposition: filename=".$filename.".csv"); print $csv_output; exit; ?> Link to comment https://forums.phpfreaks.com/topic/94819-export-table-to-xls-or-cvs/#findComment-485681 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.