lunes, 31 de mayo de 2010

Generar archivos csv, excel y word en PHP

Una forma muy sencilla de hacerlo y que encontré en http://www.webcheatsheet.com.
Esto al momento de cargar la página lanzará el cuadro de diálogo para guardar el archivo.


MS-WORD
1 <?php
2 header
("Content-type: application/vnd.ms-word");
3
header("Content-Disposition: attachment;Filename=nombre_archivo.doc");
4
5 echo
"<html>";
6 echo
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1252\">";
7 echo
"<body>";
8 echo
"<b>Mi primer documento</b>";
9 echo
"</body>";
10 echo
"</html>";
11
?>



MS-EXCEL
1<?php
2 header
("Content-type: application/vnd.ms-excel");
3
header("Content-Disposition: attachment;Filename=nombre_archivo.xls");
4
5 echo
"<html>";
6 echo
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1252\">";
7 echo
"<body>";
8 echo
"<b>Dato 1</b> \t <u>Dato 2</u> \t \n ";
9 echo
"</body>";
10 echo
"</html>";
11
?>



CSV

1<?php
2 $table
= 'table_name';
3
$outstr = NULL;
4
5
header("Content-Type: application/csv");
6
header("Content-Disposition: attachment;Filename=cars-models.csv");
7
8
$conn = mysql_connect("localhost", "mysql_user", "mysql_password");
9
mysql_select_db("db",$conn);
10
11
// Query database to get column names
12
$result = mysql_query("show columns from $table",$conn);
13
// Write column names
14
while($row = mysql_fetch_array($result)){
15
$outstr.= $row['Field'].',';
16 }
17
$outstr = substr($outstr, 0, -1)."\n";
18
19
// Query database to get data
20
$result = mysql_query("select * from $table",$conn);
21
// Write data rows
22
while ($row = mysql_fetch_assoc($result)) {
23
$outstr.= join(',', $row)."\n";
24 }
25
26 echo
$outstr;
27
mysql_close($conn);
28
?>



Gracias a http://formatealo.terysoftware.com/ por el formateo, queda de lujo!

lunes, 10 de mayo de 2010

Función Case en SQL

CASE WHEN {cond1} THEN {Value1}

     WHEN {cond2} THEN {Value2}

     [ELSE Value n ] END