This tutorial will go over how to download MS SQL Server data into Excel file. This is Very useful for generating Excel Reports of Php and MS SQL Server Applications.
<?php
$myServer = "host_name";
$myUser = "user_name";
$myPass = "password";
$myDB = "database_name";
//create an instance of the ADO connection object
$conn = new COM ("ADODB.Connection") or die("Cannot start ADO");
//define connection string, specify database driver
$connStr = "PROVIDER=SQLOLEDB;SERVER=".$myServer.";UID=".$myUser.";PWD=".$myPass.";DATABASE=".$myDB;
$conn->open($connStr); //Open the connection to the database
//declare the SQL statement that will query the database
$query = "SELECT col1, col2, col3, .... , coln FROM table_name";
//execute the SQL statement and return records
$rs = $conn->execute($query);
$num_columns = $rs->Fields->Count();
//echo "col:".$num_columns . "<br>";
for ($i=0; $i < $num_columns; $i++) {
$fld[$i] = $rs->Fields($i);
}
$contents="<table border='1'>";
while (!$rs->EOF) //carry on looping through while there are records
{
$contents.="<tr>";
for ($i=0; $i < $num_columns; $i++) {
$contents.="<td>" . $fld[$i]->value . "</td>";
}
$contents.="</tr>";
$rs->MoveNext(); //move on to the next record
}
$contents.="</table>";
$file="File_name.xls";
$test="<table border=1><tr><td>Cell 1</td><td>Cell 2</td></tr></table>";
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=File_name".date('Y-m-d').".xls");
echo $contents;
//close the connection and recordset objects freeing up resources
$rs->Close();
$conn->Close();
$rs = null;
$conn = null;
?>
Works like a charm, But is there a way to format individual cells into text ?
ReplyDeleteExample i have a cell with data like "0000007" as the excel generates its cell in general format it will only display "7" without the leading zeros. Any idea ?
how to add utf-8 unicode ?
ReplyDelete