Re: MySQL > Excel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 -------------- Original message ----------------------
From: Sam Smith <php@xxxxxxxx>
> 
> I've got it working writing out a file (fopen) to CSV (comma delimited) and
> the "header('Content-Disposition: attachment; filename="myFile.csv"')"
> method but it's clumsy for the user to figure out how to use the file.
> 
> Is there some totally slick way of spitting out a file that Excel can open
> right up?

Instead of opening a file and writing to it, just push excel headers and then just print like you would nomally do when generating a web page.  If you output an html table excel will render it like a spreadsheet.  I don't think I phrased that very well, so here's an example
<?
//get your result set up here
if($sExport){
	if ($sExport == 'xls'){
		header("Content-Type: application/vnd.ms-excel");
		header("Content-Disposition: attachment; filename=report.xls");
		$joiner = "</td><td>";
		$begin = "<tr><td>";
		$end = "</td></tr>\n";
		print "<table border='1'>";
	} else{
		header("Content-Type: text/plain");
		header("Content-Disposition: attachment; filename=report.csv");
		$joiner = ",";
		$begin = "";
		$end = "\n";
	}

	print $begin .implode($joiner, $aDisplayColumns).$end;  //prints out a header row with column name (stored in $aDisplayColumns with row name as key and display value as value)
	while ($row = $dbObj->fetch_array($rs)){
		unset ($push);
		$push = array();
		foreach ($aDisplayColumns as $key => $val)	{ 
			if ($sExport=='xls'){
				$push[] = $row[$key];
			}else{
				$push[] = addslases($row[$key]);
			}
		}
		print $begin .implode($joiner, $push).$end;
	}
	if ($sExport=='xls'){
		print "</table>";
	}
	exit;
}

Hope that helps and is not too confusing.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux