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");