Foros del Web » Programando para Internet » PHP »

Importacion MySQL - Excel

Estas en el tema de Importacion MySQL - Excel en el foro de PHP en Foros del Web. Estuve intentando exportar una Base de datos desde MySQL a Excel por medio de php y lo logre, pero el problema es que cuando se ...
  #1 (permalink)  
Antiguo 14/07/2011, 09:16
Avatar de ACDMan  
Fecha de Ingreso: julio-2011
Mensajes: 18
Antigüedad: 12 años, 9 meses
Puntos: 0
Importacion MySQL - Excel

Estuve intentando exportar una Base de datos desde MySQL a Excel por medio de php y lo logre, pero el problema es que cuando se importan datos, la tabla que importo duplica las columnas y no e podido resolver el porque, espero que puedan ayudarme, y de antemano muchas gracias por la ayuda que puendan brindar

Código PHP:
include("excelwriter.inc.php");

$excel=new ExcelWriter("RESPALDO.xls");

if(
$excel==false) {
echo 
$excel->error;
}

//Escribimos la primera fila con las cabeceras
$myArr=array("Num","NOMBRE","CLASIFICACION","UBICACION","ESTATUS","VSP","DIRECTIVOS","TECNICOS");
$excel->writeLine($myArr);

//REALIZAMOS LA CONSULTA
$dbhost "localhost";
$dbuser "root";
$dbpassword "";
$dbname "cursos_IT";

$db2 mysql_connect($dbhost$dbuser$dbpassword) or die("Connection Error: " mysql_error());
mysql_select_db($dbname) or die("Error al conectar a la base de datos.");
$sql2 "SELECT * FROM cursos";
$result2 mysql_query$sql2) or die("No se puede ejecutar la consulta: ".mysql_error());

//Escribimos todos los registros de la base de datos en el fichero EXCEL
while($Rs2 mysql_fetch_array($result2)) {
$myArr=array(
$Rs2['Num'],
$Rs2['NOMBRE'],
$Rs2['CLASIFICAION'],
$Rs2['UBICACION'],
$Rs2['ESTATUS'],
$Rs2['VSP'],
$Rs2['DIRECTIVOS'],
$Rs2['TECNICOS']
);
$excel->writeLine($Rs2);
}
$excel->close(); 
----------------------------------------------------------------------------------------------

Este es "excelwriter.inc.php"

Código PHP:
<?php
    
    
Class ExcelWriter
    
{
            
        var 
$fp=null;
        var 
$error;
        var 
$state="CLOSED";
        var 
$newRow=false;
        
        
        function 
ExcelWriter($file="")
        {
            return 
$this->open($file);
        }
        
        function 
open($file)
        {
            if(
$this->state!="CLOSED")
            {
                
$this->error="Error : Another file is opend .Close it to save the file";
                return 
false;
            }    
            
            if(!empty(
$file))
            {
                
$this->fp=@fopen($file,"w+");
            }
            else
            {
                
$this->error="Usage : New ExcelWriter('fileName')";
                return 
false;
            }    
            if(
$this->fp==false)
            {
                
$this->error="Error: Unable to open/create File.You may not have permmsion to write the file.";
                return 
false;
            }
            
$this->state="OPENED";
            
fwrite($this->fp,$this->GetHeader());
            return 
$this->fp;
        }
        
        function 
close()
        {
            if(
$this->state!="OPENED")
            {
                
$this->error="Error : Please open the file.";
                return 
false;
            }    
            if(
$this->newRow)
            {
                
fwrite($this->fp,"</tr>");
                
$this->newRow=false;
            }
            
            
fwrite($this->fp,$this->GetFooter());
            
fclose($this->fp);
            
$this->state="CLOSED";
            return ;
        }
                                     
        function 
GetHeader()
        {
            
$header = <<<EOH
                <html xmlns:o="urn:schemas-microsoft-com:office:office"
                xmlns:x="urn:schemas-microsoft-com:office:excel"
                xmlns="http://www.w3.org/TR/REC-html40">

                <head>
                <meta http-equiv=Content-Type content="text/html; charset=us-ascii">
                <meta name=ProgId content=Excel.Sheet>
                <!--[if gte mso 9]><xml>
                 <o:DocumentProperties>
                  <o:LastAuthor>Sriram</o:LastAuthor>
                  <o:LastSaved>2005-01-02T07:46:23Z</o:LastSaved>
                  <o:Version>10.2625</o:Version>
                 </o:DocumentProperties>
                 <o:OfficeDocumentSettings>
                  <o:DownloadComponents/>
                 </o:OfficeDocumentSettings>
                </xml><![endif]-->
                <style>
                <!--table
                    {mso-displayed-decimal-separator:"\.";
                    mso-displayed-thousand-separator:"\,";}
                @page
                    {margin:1.0in .75in 1.0in .75in;
                    mso-header-margin:.5in;
                    mso-footer-margin:.5in;}
                tr
                    {mso-height-source:auto;}
                col
                    {mso-width-source:auto;}
                br
                    {mso-data-placement:same-cell;}
                .style0
                    {mso-number-format:General;
                    text-align:general;
                    vertical-align:bottom;
                    white-space:nowrap;
                    mso-rotate:0;
                    mso-background-source:auto;
                    mso-pattern:auto;
                    color:windowtext;
                    font-size:10.0pt;
                    font-weight:400;
                    font-style:normal;
                    text-decoration:none;
                    font-family:Arial;
                    mso-generic-font-family:auto;
                    mso-font-charset:0;
                    border:none;
                    mso-protection:locked visible;
                    mso-style-name:Normal;
                    mso-style-id:0;}
                td
                    {mso-style-parent:style0;
                    padding-top:1px;
                    padding-right:1px;
                    padding-left:1px;
                    mso-ignore:padding;
                    color:windowtext;
                    font-size:10.0pt;
                    font-weight:400;
                    font-style:normal;
                    text-decoration:none;
                    font-family:Arial;
                    mso-generic-font-family:auto;
                    mso-font-charset:0;
                    mso-number-format:General;
                    text-align:general;
                    vertical-align:bottom;
                    border:none;
                    mso-background-source:auto;
                    mso-pattern:auto;
                    mso-protection:locked visible;
                    white-space:nowrap;
                    mso-rotate:0;}
                .xl24
                    {mso-style-parent:style0;
                    white-space:normal;}
                -->
                </style>
                <!--[if gte mso 9]><xml>
                 <x:ExcelWorkbook>
                  <x:ExcelWorksheets>
                   <x:ExcelWorksheet>
                    <x:Name>srirmam</x:Name>
                    <x:WorksheetOptions>
                     <x:Selected/>
                     <x:ProtectContents>False</x:ProtectContents>
                     <x:ProtectObjects>False</x:ProtectObjects>
                     <x:ProtectScenarios>False</x:ProtectScenarios>
                    </x:WorksheetOptions>
                   </x:ExcelWorksheet>
                  </x:ExcelWorksheets>
                  <x:WindowHeight>10005</x:WindowHeight>
                  <x:WindowWidth>10005</x:WindowWidth>
                  <x:WindowTopX>120</x:WindowTopX>
                  <x:WindowTopY>135</x:WindowTopY>
                  <x:ProtectStructure>False</x:ProtectStructure>
                  <x:ProtectWindows>False</x:ProtectWindows>
                 </x:ExcelWorkbook>
                </xml><![endif]-->
                </head>

                <body link=blue vlink=purple>
                <table x:str border=0 cellpadding=0 cellspacing=0 style='border-collapse: collapse;table-layout:fixed;'>
EOH;
            return 
$header;
        }

        function 
GetFooter()
        {
            return 
"</table></body></html>";
        }
        
        function 
writeLine($line_arr)
        {
            if(
$this->state!="OPENED")
            {
                
$this->error="Error : Please open the file.";
                return 
false;
            }    
            if(!
is_array($line_arr))
            {
                
$this->error="Error : Argument is not valid. Supply an valid Array.";
                return 
false;
            }
            
fwrite($this->fp,"<tr>");
            foreach(
$line_arr as $col)
                
fwrite($this->fp,"<td class=xl24 width=64 >$col</td>");
            
fwrite($this->fp,"</tr>");
        }

        function 
writeRow()
        {
            if(
$this->state!="OPENED")
            {
                
$this->error="Error : Please open the file.";
                return 
false;
            }    
            if(
$this->newRow==false)
                
fwrite($this->fp,"<tr>");
            else
                
fwrite($this->fp,"</tr><tr>");
            
$this->newRow=true;    
        }

        function 
writeCol($value)
        {
            if(
$this->state!="OPENED")
            {
                
$this->error="Error : Please open the file.";
                return 
false;
            }    
            
fwrite($this->fp,"<td class=xl24 width=64 >$value</td>");
        }
    }
?>

Última edición por ACDMan; 14/07/2011 a las 09:27
  #2 (permalink)  
Antiguo 14/07/2011, 11:24
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Importacion MySQL - Excel

el array $myArr lo usas para dos cosas distintas, poneles diferentes nombre a estos arrays.
primero intenta hacer que solo inserte los nombre de los campos, asi descartamos dudas
  #3 (permalink)  
Antiguo 18/07/2011, 11:24
Avatar de ACDMan  
Fecha de Ingreso: julio-2011
Mensajes: 18
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Importacion MySQL - Excel

ya se los cambie pero sigue ocurriendo lo mismo
  #4 (permalink)  
Antiguo 18/07/2011, 11:40
Avatar de ACDMan  
Fecha de Ingreso: julio-2011
Mensajes: 18
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Importacion MySQL - Excel

Ya porfin se pudo

el rro estaba en el archivo php en esta parte:

while($Rs2 = mysql_fetch_array($result2)) { <----------------AQUI!!
$myArr=array(
$Rs2['Num'],
$Rs2['NOMBRE'],
$Rs2['CLASIFICAION'],
$Rs2['UBICACION'],
$Rs2['ESTATUS'],
$Rs2['VSP'],
$Rs2['DIRECTIVOS'],
$Rs2['TECNICOS']
);

avia que cambiar el mysql_fetch_array por un mysql_fetch_row

espero le sirva a alguien mas y no se tenga que estar mantado como uno xD
  #5 (permalink)  
Antiguo 18/07/2011, 11:47
Avatar de ACDMan  
Fecha de Ingreso: julio-2011
Mensajes: 18
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Importacion MySQL - Excel

ya se pudo !!

solo habia que cambiar mysql_fetch_array($result2) por mysql_fetch_row($result2) en el documento PHP en esta parte:

while($Rs2 = mysql_fetch_array($result2)) {
$myArr=array(
$Rs2['Num'],
$Rs2['NOMBRE'],
$Rs2['CLASIFICAION'],
$Rs2['UBICACION'],
$Rs2['ESTATUS'],
$Rs2['VSP'],
$Rs2['DIRECTIVOS'],
$Rs2['TECNICOS']
);

espero y les sirva para que no tengan que romper la cabeza como uno xD

Etiquetas: exportacion, myslq, phpexcel
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 21:40.