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. Quote Link to comment 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; ?> Quote Link to comment 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; ?> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.