Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/05/2014, 07:29
ElleLawliet
 
Fecha de Ingreso: noviembre-2013
Mensajes: 47
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: fputcsv para guardar en un excell en mas de 1 columna

E probado tal como dices pero el problema que tengo es que si, ahora me muestra, por ejemplo:

Nombre, Apellidos, etc
Elle, Lawliet, etc

Me lo sigue mostrando en la misma columna del documento de excell, quiza es que no me explique bien, yo lo que necesito es que nombre este en A1, elle en A2, Apellidos en B1, Lawliet en B2, etc en C1, y asi, supongo que con el fputcsv, no se puede, e visto que hay una classe en php que se llama phpExcell, que con eso se supone que lo puedo hacer, pero no me acaba de salir, tengo esto:

Código PHP:
require_once 'Classes/PHPExcel.php';
require_once 
'Classes/PHPExcel/IOFactory.php';

  
$objPHPExcel = new PHPExcel();
  
  global 
$wpdb;
  
  
$query1 $wpdb->get_results "
    SELECT *
    FROM  wp_cformsdata
  " 
);
  
  
//$query1 = "SELECT field_name, field_val FROM wp_cformsdata";
  
$exec1 mysql_query($query1) or die ("Error in Query1".mysql_error());

  
//Set header with temp array
  
$tmparray =array("page","title","Nombre","Apellidos","Empresa","Telefono","email","Comentarios","Acepto");
  
//take new main array and set header array in it.
  
$sheet =array($tmparray);

  while (
$res1 mysql_fetch_array($exec1))
  {
    
$tmparray = array();
    
$page $res1['page'];
    
array_push($tmparray,$page);
    
$title $res1['title'];
    
array_push($tmparray,$title);
    
$nombre $res1['Nombre'];
    
array_push($tmparray,$nombre);
    
$apellidos $res1['Apellidos'];
    
array_push($tmparray,$apellidos);
    
$empresa $res1['Empresa'];
    
array_push($tmparray,$empresa);
    
$telefono $res1['Telefono'];
    
array_push($tmparray,$telefono);
    
$email $res1['email'];
    
array_push($tmparray,$emaiñ);
    
$comentarios $res1['Comentarios'];
    
array_push($tmparray,$comentarios);
    
$acepto $res1['Acepto'];
    
array_push($tmparray,$acepto);
    
array_push($sheet,$tmparray);
  }
   
header('Content-type: application/vnd.ms-excel');
   
header('Content-Disposition: attachment; filename="name.xlsx"');
  
$worksheet $objPHPExcel->getActiveSheet();
  foreach(
$sheet as $row => $columns) {
    foreach(
$columns as $column => $data) {
        
$worksheet->setCellValueByColumnAndRow($column$row 1$data);
    }
  }

  
//make first row bold
  
$objPHPExcel->getActiveSheet()->getStyle("A1:I1")->getFont()->setBold(true);
  
$objPHPExcel->setActiveSheetIndex(0);
  
$objWriter PHPExcel_IOFactory::createWriter($objPHPExcel'Excel2007');
  
$objWriter->save("name.xlsx"); 
Recuerdo que en la tabla de la base de datos esta asi:

field_name field_val
Nombre Elle
Apellidos Lawliet
Empresa X
etc X

El codigo que e puesto, directamente no me guarda nada, alguna idea? seria conveniente que abriera un post nuevo en el apartado de php???

Gracias!!

Edito:

Para probar almenos si me guarda los valores en el excell estoy probando de coger directamente la columna field_name y field_val de la base de datos y ponerlas respectivamente en las columnas A y B del documento de excel, pero tampoco me funciona...

El codigo es este:
Código PHP:
/** Incluir la libreria PHPExcel */
require_once 'Classes/PHPExcel.php';
require_once 
'Classes/PHPExcel/IOFactory.php';

  
$objPHPExcel = new PHPExcel();
  
  global 
$wpdb;
  
  
$query1 $wpdb->get_results "
    SELECT field_name, field_val
    FROM  wp_cformsdata
  " 
);
  
  
//$query1 = "SELECT field_name, field_val FROM wp_cformsdata";
  
$exec1 mysql_query($query1) or die ("Error in Query1".mysql_error());

  
//Set header with temp array
  
$tmparray =array("Nom","Valor");
  
//take new main array and set header array in it.
  
$sheet =array($tmparray);

  while (
$res1 mysql_fetch_array($exec1))
  {
    
$tmparray = array();
    
$nom $res1['nom'];
    
array_push($tmparray,$nom);
    
$valor $res1['valor'];
    
array_push($tmparray,$valor);

    
array_push($sheet,$tmparray);
  }
   
header('Content-type: application/vnd.ms-excel');
   
header('Content-Disposition: attachment; filename="name.xlsx"');
  
$worksheet $objPHPExcel->getActiveSheet();
  foreach(
$sheet as $row => $columns) {
    foreach(
$columns as $column => $data) {
        
$worksheet->setCellValueByColumnAndRow($column$row 1$data);
    }
  }

  
//make first row bold
  
$objPHPExcel->getActiveSheet()->getStyle("A1:I1")->getFont()->setBold(true);
  
$objPHPExcel->setActiveSheetIndex(0);
  
$objWriter PHPExcel_IOFactory::createWriter($objPHPExcel'Excel2007');
  
$objWriter->save("name.xlsx"); 

Última edición por ElleLawliet; 05/05/2014 a las 08:16