Foros del Web » Programando para Internet » PHP »

Problema con PHPExcel

Estas en el tema de Problema con PHPExcel en el foro de PHP en Foros del Web. Hola a todos estoy haciendo pruebas con la libreria PHPExcel, y tengo un problema, estoy haciendo un ejemplo que he encontrado y me lo ejecuta ...
  #1 (permalink)  
Antiguo 28/01/2012, 12:33
Avatar de camarvi24  
Fecha de Ingreso: diciembre-2011
Ubicación: España
Mensajes: 74
Antigüedad: 12 años, 4 meses
Puntos: 1
Problema con PHPExcel

Hola a todos estoy haciendo pruebas con la libreria PHPExcel, y tengo un problema, estoy haciendo un ejemplo que he encontrado y me lo ejecuta bien, me descarga el excel pero cuando lo abro (con openofice 3.2) primero me sale una ventana donde me pide el idioma para importar el fichero (tiene extension xls , tambien me pasa con xlsx), cuando seleciono el idioma, me muestra caracteres extraños en la casilla A1, he utilizado tambien la libreria iam_xls y me pasa lo mismo, el problema puede estar en openofice ?

Os pongo el fragmento de codigo.

<?php

require_once 'Classes/PHPExcel.php';

$objPHPExcel = new PHPExcel();

// Agregar Informacion
$objPHPExcel->setActiveSheetIndex()->setCellValue('A1', '5')
->setCellValue('B1', '6')
->setCellValue('C1', 'Total')
->setCellValue('A2', '10')
->setCellValue('C2', '=sum(A2:B1)');

// Renombrar Hoja
$objPHPExcel->getActiveSheet()->setTitle('Tecnologia Simple');

// Establecer la hoja activa, para que cuando se abra el documento se muestre primero.
$objPHPExcel->setActiveSheetIndex(0);

// Se modifican los encabezados del HTTP para indicar que se envia un archivo de Excel.
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="pruebaReal.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
?>

Un saludo y gracias
  #2 (permalink)  
Antiguo 28/01/2012, 12:42
Usuario no validado
 
Fecha de Ingreso: abril-2010
Ubicación: La habana
Mensajes: 229
Antigüedad: 14 años
Puntos: 4
Respuesta: Problema con PHPExcel

Socio, si esto te está pasando solo al intentar abrir con OpenOffices es obio que el problema es openoffices, te sugiero busques otras librerías de excel para php.

Salu2
  #3 (permalink)  
Antiguo 29/01/2012, 09:00
Avatar de camarvi24  
Fecha de Ingreso: diciembre-2011
Ubicación: España
Mensajes: 74
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Problema con PHPExcel

Sabeis de alguna otra libreria que funciones bien con openofice?
  #4 (permalink)  
Antiguo 30/01/2012, 12:28
Avatar de camarvi24  
Fecha de Ingreso: diciembre-2011
Ubicación: España
Mensajes: 74
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Problema con PHPExcel

El problema no esta en OpenOficce, con el office tampoco me funciona.
Alguien sabe como puedo generar un excel con php de forma correcta.
Gracias
  #5 (permalink)  
Antiguo 30/01/2012, 12:54
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: Problema con PHPExcel

Casualmente yo utilizo la misma Clase, que es realmente muy buena. La forma en que inserto datos en celdas es esta

Código PHP:
Ver original
  1. $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow($columna, $fila, $valor);

Tené en cuenta que la primer columna es la 0, y la primer fila es la 1.

Saludos!
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #6 (permalink)  
Antiguo 31/01/2012, 11:24
Avatar de camarvi24  
Fecha de Ingreso: diciembre-2011
Ubicación: España
Mensajes: 74
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Problema con PHPExcel

Hola, yo consigo insertar valores y todo eso, el problema lo tengo que cuando me muesta el excel, solo saca caracteres raros, lo he probado tanto en linux como en windows (con office 2007) y no me muestra bien los datos.

Estoy un poco desesperado ya que necesito exportar los datos a excel.
  #7 (permalink)  
Antiguo 01/02/2012, 06:37
Avatar de camarvi24  
Fecha de Ingreso: diciembre-2011
Ubicación: España
Mensajes: 74
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Problema con PHPExcel

Creo que ya lo tengo, he conseguido exportar bien un excel desde mi aplicacion,
Os pongo el codigo:

<?



require('Classes/PHPExcel.php');
include 'Classes/PHPExcel/IOFactory.php';
include 'Classes/PHPExcel/Writer/Excel5.php';



$objPHPExcel = new PHPExcel;
// set syles
$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(10);
$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
// writer will create the first sheet for us, let's get it
$objSheet = $objPHPExcel->getActiveSheet();
$objSheet->setTitle('RESULTADOS');


//Informacion de Columnas y Titulos

$objSheet->getCell('A1')->setValue('CENTRO');
$objSheet->getCell('A2')->setValue('MES');
$objSheet->getCell('A3')->setValue('VALOR');
$objSheet->getCell('B6')->setValue('5');
$objSheet->getCell('B7')->setValue('10');
$objSheet->getCell('B8')->setValue(':SUMA(b6:b7)');






//$objWriter->save('pruebaexcel2.xls');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="pruebaexcel5.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');


?>


Un saludo a todos
  #8 (permalink)  
Antiguo 08/06/2016, 10:49
 
Fecha de Ingreso: junio-2016
Mensajes: 1
Antigüedad: 7 años, 10 meses
Puntos: 0
Respuesta: Problema con PHPExcel

<?php

session_start();
require('./lib/lib/PHPExcel/PHPExcel.php');
$id = $_GET['id'];

$conn = new mysqli('127.0.0.1', 'root', 'sl2016', 'glpi');
if (mysqli_connect_errno()) {
printf("La conexión con el servidor de base de datos falló: %s\n", mysqli_connect_error());
}
$sql = "SELECT * FROM glpi_plugin_adminbienes_solicitudes where id_solicitud = $id";
$result = $conn->query($sql);

$objPHPExcel = new PHPExcel;
// set syles
$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial');

$objPHPExcel->getDefaultStyle()->getFont()->setSize(10);

$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);

// writer will create the first sheet for us, let's get it

$objSheet = $objPHPExcel->getActiveSheet();

$objSheet->setTitle('RESULTADOS');

// Se agregan los titulos del reporte
$objSheet->getCell('A1')->setValue('ID');
$objSheet->getCell('B1')->setValue('Fecha');
$objSheet->getCell('C1')->setValue('Nombre De La Imagen');


//Informacion de Columnas y Titulos
if ($result->num_rows > 0) {
$i = 3;
while ($row = $result->fetch_assoc()) {
$objPHPExcel->setActiveSheetIndex(0)
->setCellvalue('A' . $i, $row['id_solicitud'])
->setCellvalue('B' . $i, $row['fecha_solicitud'])
->setCellvalue('C' . $i, $row['producto_solicitud'])
->setCellvalue('D' . $i, $row['cant_producto_solicitud']);
$i++;
}
}

$estiloTituloReporte = array(
'font' => array(
'name' => 'Verdana',
' bold' => true,
' italic' => false,
' strike' => false,
' size' => 16,
' color' => array(
'rgb' => 'FFFFFF'
)
),
' fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
' color' => array('argb' => 'FF220835')
),
' borders' => array(
'allborders' => array(
'style' => PHPExcel_Style_Border::BORDER_NONE
)
),
' alignment' => array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
' vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER,
' rotation' => 0,
' wrap' => TRUE
)
);

$estiloTituloColumnas = array(
'font' => array(
'name' => 'Arial',
' bold' => true,
' color' => array(
'rgb' => 'FFFFFF'
)
),
' fill' => array(
'type' => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
' rotation' => 90,
' startcolor' => array(
'rgb' => 'c47cf2'
),
' endcolor' => array(
'argb' => 'FF431a5d'
)
),
' borders' => array(
'top' => array(
'style' => PHPExcel_Style_Border::BORDER_MEDIUM,
' color' => array(
'rgb' => '143860'
)
),
' bottom' => array(
'style' => PHPExcel_Style_Border::BORDER_MEDIUM,
' color' => array(
'rgb' => '143860'
)
)
),
' alignment' => array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
' vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER,
' wrap' => TRUE
));

$estiloInformacion = new PHPExcel_Style();
$estiloInformacion->applyFromArray(
array(
'font' => array(
'name' => 'Arial',
'color' => array(
'rgb' => '000000'
)
),
'fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'color' => array('argb' => 'FFd9b7f4')
),
'borders' => array(
'left' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN,
'color' => array(
'rgb' => '3a2a47'
)
)
)
));

$objPHPExcel->getActiveSheet()->getStyle('A1:B1')->applyFromArray($estiloTituloReporte);
$objPHPExcel->getActiveSheet()->getStyle('A3:D3')->applyFromArray($estiloTituloColumnas);
$objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, 'A3:D' . ($i - 1));







//$objWriter->save('pruebaexcel2.xls');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="pruebaexcel5.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
?>

Etiquetas: 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 09:59.