Foros del Web » Programando para Internet » PHP »

Ayuda con sql => xls

Estas en el tema de Ayuda con sql => xls en el foro de PHP en Foros del Web. Amigos necesito exportar los datos de una tabla mysql a un archivo de excel... ya que debo hacer que cuando se haga click en el ...
  #1 (permalink)  
Antiguo 14/10/2005, 09:01
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 20 años, 10 meses
Puntos: 3
Exclamación Ayuda con sql => xls

Amigos necesito exportar los datos de una tabla mysql a un archivo de excel... ya que debo hacer que cuando se haga click en el enlace se genere el archivo de excel con todos los datos incluidos en dicha tabla.....

como puedo hacer??? hay un script en php o algo asi que se pueda colocar en la web? ah, la web esta siendo desarrollada en php...


gracias por vuestra ayuda!!!!
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #2 (permalink)  
Antiguo 14/10/2005, 09:06
Avatar de Txane  
Fecha de Ingreso: febrero-2004
Ubicación: Morelia Michoacan
Mensajes: 272
Antigüedad: 20 años, 2 meses
Puntos: 2
A ver que tal te funciona esto:

Código PHP:
1    <?php 
2   
//EDIT YOUR MySQL Connection Info: 
3   $DB_Server "localhost";        //your MySQL Server  
4   $DB_Username "";                 //your MySQL User Name  
5   $DB_Password "";                //your MySQL Password  
6   $DB_DBName "";                //your MySQL Database Name  
7   $DB_TBLName "";                //your MySQL Table Name  
8   //$DB_TBLName,  $DB_DBName, may also be commented out & passed to the browser 
9   //as parameters in a query string, so that this code may be easily reused for 
10   //any MySQL table or any MySQL database on your server 
11   //DEFINE SQL QUERY: 
12   //you can use just about ANY kind of select statement you want -  
13   //edit this to suit your needs! 
14   $sql "Select * from $DB_TBLName"
15   //Optional: print out title to top of Excel or Word file with Timestamp 
16   //for when file was generated: 
17   //set $Use_Titel = 1 to generate title, 0 not to use title 
18   $Use_Title 1
19   //define date for title: EDIT this to create the time-format you need 
20   $now_date date('m-d-Y H:i'); 
21   //define title for .doc or .xls file: EDIT this if you want 
22   $title "Dump For Table $DB_TBLName from Database $DB_DBName on $now_date"
23   /* 
24   Leave the connection info below as it is: 
25   just edit the above. 
26   (Editing of code past this point recommended only for advanced users.) 
27   */ 
28   //create MySQL connection 
29   $Connect = @mysql_connect($DB_Server$DB_Username$DB_Password
30       or die("Couldn't connect to MySQL:<br>" mysql_error() . "<br>" mysql_errno()); 
31   //select database 
32   $Db = @mysql_select_db($DB_DBName$Connect
33       or die("Couldn't select database:<br>" mysql_error(). "<br>" mysql_errno()); 
34   //execute query 
35   $result = @mysql_query($sql,$Connect
36       or die("Couldn't execute query:<br>" mysql_error(). "<br>" mysql_errno()); 
37   //if this parameter is included ($w=1), file returned will be in word format ('.doc') 
38   //if parameter is not included, file returned will be in excel format ('.xls') 
39   if (isset($w) && ($w==1)) 
40   
41       $file_type "msword"
42       $file_ending "doc"
43   }else { 
44       $file_type "vnd.ms-excel"
45       $file_ending "xls"
46   
47   //header info for browser: determines file type ('.doc' or '.xls') 
48   header("Content-Type: application/$file_type"); 
49   header("Content-Disposition: attachment; filename=database_dump.$file_ending"); 
50   header("Pragma: no-cache"); 
51   header("Expires: 0"); 
52   /*    Start of Formatting for Word or Excel    */ 
53   if (isset($w) && ($w==1)) //check for $w again 
54   
55       /*    FORMATTING FOR WORD DOCUMENTS ('.doc')   */ 
56       //create title with timestamp: 
57       if ($Use_Title == 1
58       
59           echo("$titlenn"); 
60       
61       //define separator (defines columns in excel & tabs in word) 
62       $sep "n"//new line character 
63       while($row mysql_fetch_row($result)) 
64       
65           //set_time_limit(60); // HaRa 
66           $schema_insert ""
67           for($j=0$j<mysql_num_fields($result);$j++) 
68           
69           //define field names 
70           $field_name mysql_field_name($result,$j); 
71           //will show name of fields 
72           $schema_insert .= "$field_name:t"
73               if(!isset($row[$j])) { 
74                   $schema_insert .= "NULL".$sep
75                   
76               elseif ($row[$j] != "") { 
77                   $schema_insert .= "$row[$j]".$sep
78                   
79               else { 
80                   $schema_insert .= "".$sep
81                   
82           
83           $schema_insert str_replace($sep."$"""$schema_insert); 
84           $schema_insert .= "t"
85           print(trim($schema_insert)); 
86           //end of each mysql row 
87           //creates line to separate data from each MySQL table row 
88           print "n----------------------------------------------------n"
89       
90   }else{ 
91       /*    FORMATTING FOR EXCEL DOCUMENTS ('.xls')   */ 
92       //create title with timestamp: 
93       if ($Use_Title == 1
94       
95           echo("$titlen"); 
96       
97       //define separator (defines columns in excel & tabs in word) 
98       $sep "t"//tabbed character 
99       //start of printing column names as names of MySQL fields 
100       for ($i 0$i mysql_num_fields($result); $i++) 
101       
102           echo mysql_field_name($result,$i) . "t"
103       
104       print("n"); 
105       //end of printing column names 
106       //start while loop to get data 
107       while($row mysql_fetch_row($result)) 
108       
109           //set_time_limit(60); // HaRa 
110           $schema_insert ""
111           for($j=0$j<mysql_num_fields($result);$j++) 
112           
113               if(!isset($row[$j])) 
114                   $schema_insert .= "NULL".$sep
115               elseif ($row[$j] != ""
116                   $schema_insert .= "$row[$j]".$sep
117               else 
118                   $schema_insert .= "".$sep
119           
120           $schema_insert str_replace($sep."$"""$schema_insert); 
121           //following fix suggested by Josue (thanks, Josue!) 
122           //this corrects output in excel when table fields contain n or r 
123           //these two characters are now replaced with a space 
124           $schema_insert preg_replace("/rn|nr|n|r/"" "$schema_insert); 
125           $schema_insert .= "t"
126           print(trim($schema_insert)); 
127           print "n"
128       
129   
130   ?>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:14.