Autor Tema: ¿Se puede mostrar un archivo Excel en un sitio con PHP?  (Leído 3582 veces)

Desconectado -RiPeRcOp-

  • PHPer@ Fijo
  • ***
  • Mensajes: 206
  • Karma: 7
  • Sexo: Masculino
  • RiPeR, The House`s assistant
    • Ver Perfil
    • RevolutionW
¿Se puede mostrar un archivo Excel en un sitio con PHP?
« en: 06 de Septiembre de 2009, 18:28:43 pm »
Estoy necesitando mostrar un archivo .xls en un sitio web, por que tengo un cliente que necesita mostrar tablas con productos, y como que le cuesta aprender, entonces me consulto si podia hacerlo de esta forma. Entonces estuve buscando como mostrar un archivo .xls, pero todo lo que encontre tiene poca explicación, o directamente no funcionan.

Hay posibilidad de que alla alguna forma de mostrarlo de manera simple, concreta y rapida?.

Saludos

Comunidad PHPeros

¿Se puede mostrar un archivo Excel en un sitio con PHP?
« en: 06 de Septiembre de 2009, 18:28:43 pm »

Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re:¿Se puede mostrar un archivo Excel en un sitio con PHP?
« Respuesta #1 en: 06 de Septiembre de 2009, 18:32:04 pm »
Esto [1] no te parece simple y concreto?

[1] http://php.apsique.com/node/411
Por favor, leete las Normas


Desconectado -RiPeRcOp-

  • PHPer@ Fijo
  • ***
  • Mensajes: 206
  • Karma: 7
  • Sexo: Masculino
  • RiPeR, The House`s assistant
    • Ver Perfil
    • RevolutionW
Re:¿Se puede mostrar un archivo Excel en un sitio con PHP?
« Respuesta #2 en: 06 de Septiembre de 2009, 19:02:01 pm »
Eres un genio, raro pero buscando en Google no pude encontrar ese sitio. Solo pude encontrar algo asi como la clase XLSReader o algo asi, no tengo ni idea como funciona :P.

Saludos y muchisimas gracias :D

PD: despues de probarlo, funciono asi:

Fila 1, Col. 1:Nada
Fila 1, Col. 2:Beta
Fila 1, Col. 3:Fefa
Fila 1, Col. 4:Cuatro
Fila 2, Col. 1:
Fila 2, Col. 2:
Fila 2, Col. 3:
Fila 2, Col. 4:
Fila 3, Col. 1:1
Fila 3, Col. 2:2
Fila 3, Col. 3:3
Fila 3, Col. 4:4
Fila 4, Col. 1:8
Fila 4, Col. 2:7
Fila 4, Col. 3:6
Fila 4, Col. 4:5
Fila 5, Col. 1:9
Fila 5, Col. 2:0
Fila 5, Col. 3:1
Fila 5, Col. 4:2
Fila 6, Col. 1:6
Fila 6, Col. 2:5
Fila 6, Col. 3:4
Fila 6, Col. 4:3
Fila 7, Col. 1:
Fila 7, Col. 2:
Fila 7, Col. 3:
Fila 7, Col. 4:
Fila 8, Col. 1:
Fila 8, Col. 2:
Fila 8, Col. 3:
Fila 8, Col. 4:
Fila 9, Col. 1:
Fila 9, Col. 2:
Fila 9, Col. 3:
Fila 9, Col. 4:
Fila 10, Col. 1:
Fila 10, Col. 2:
Fila 10, Col. 3:
Fila 10, Col. 4:
Fila 11, Col. 1:
Fila 11, Col. 2:
Fila 11, Col. 3:
Fila 11, Col. 4:
Fila 12, Col. 1:
Fila 12, Col. 2:
Fila 12, Col. 3:
Fila 12, Col. 4:
Fila 13, Col. 1:
Fila 13, Col. 2:
Fila 13, Col. 3:
Fila 13, Col. 4:
Fila 14, Col. 1:
Fila 14, Col. 2:
Fila 14, Col. 3:
Fila 14, Col. 4:
Fila 15, Col. 1:
Fila 15, Col. 2:
Fila 15, Col. 3:
Fila 15, Col. 4:
Fila 16, Col. 1:
Fila 16, Col. 2:
Fila 16, Col. 3:
Fila 16, Col. 4:

usando el codigo:

<?php
require_once &#39;reader.php&#39;;
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding(&#39;CP1251&#39;);
$data->setUTFEncoder(&#39;mb&#39;);
$data->read(&#39;nada.xls&#39;);
/*
$data->sheets[0][&#39;numRows&#39;] - count rows
$data->sheets[0][&#39;numCols&#39;] - count columns
$data->sheets[0][&#39;cells&#39;][$i][$j] - data from $i-row $j-column
$data->sheets[0][&#39;cellsInfo&#39;][$i][$j] - extended info about cell
$data->sheets[0][&#39;cellsInfo&#39;][$i][$j][&#39;type&#39;] = "date" | "number" | "unknown"
if &#39;type&#39; == "unknown" - use &#39;raw&#39; value, because cell contain value with format &#39;0.00&#39;;
$data->sheets[0][&#39;cellsInfo&#39;][$i][$j][&#39;raw&#39;] = value if cell without format
$data->sheets[0][&#39;cellsInfo&#39;][$i][$j][&#39;colspan&#39;]
$data->sheets[0][&#39;cellsInfo&#39;][$i][$j][&#39;rowspan&#39;]
*/
error_reporting(E_ALL E_NOTICE);
 for (
$i 1$i <= $data->sheets[0][&#39;numRows&#39;]; $i++) {
for ($j 1$j <= $data->sheets[0][&#39;numCols&#39;]; $j++) {
echo "Fila $i, Col. $j:".$data->sheets[0][&#39;cells&#39;][$i][$j]."<br />";
 
}
 echo 
"\n";
 }
?>


Como tengo que hacer para que se muestre lo mas parecido a Excel, es decir, ordenador en columnas y filas. Algo asi como que se ordene en tablas??

Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re:¿Se puede mostrar un archivo Excel en un sitio con PHP?
« Respuesta #3 en: 06 de Septiembre de 2009, 20:58:21 pm »
Pues currarte el tema de la tabla por tu cuenta...

Código: [Seleccionar]
<table>
<tr>
<td>Columna1</td>
<td>Columna2</td>
<td>Columna3</td>
</tr>
<tr>
<td>Columna1</td>
<td>Columna2</td>
<td>Columna3</td>
</tr>
</table>
Por favor, leete las Normas


Desconectado -RiPeRcOp-

  • PHPer@ Fijo
  • ***
  • Mensajes: 206
  • Karma: 7
  • Sexo: Masculino
  • RiPeR, The House`s assistant
    • Ver Perfil
    • RevolutionW
Re:¿Se puede mostrar un archivo Excel en un sitio con PHP?
« Respuesta #4 en: 06 de Septiembre de 2009, 21:07:13 pm »
Vere que puedo hacer, voy a tener que buscar mas en Google :p. Me parece que voy a hacerle un simple formulario, que ingrese los valores que necesite y que los inserte en una base de datos, y despues que los muestre, todos ordenador por tabla, que imagino que ahi es mas facil.

Saludos

PD: exelente el nuevo diseño, quedo genial.

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:¿Se puede mostrar un archivo Excel en un sitio con PHP?
« Respuesta #5 en: 06 de Septiembre de 2009, 21:57:35 pm »
es facil de acer, pones <table> y </table> fuera de los for, en el for de $i, antes del siguiente pones un tr, despues del de $j y antes k acabe el de $i el </tr> y dentro del de $j, el td con el contenido

Desconectado -RiPeRcOp-

  • PHPer@ Fijo
  • ***
  • Mensajes: 206
  • Karma: 7
  • Sexo: Masculino
  • RiPeR, The House`s assistant
    • Ver Perfil
    • RevolutionW
Re:¿Se puede mostrar un archivo Excel en un sitio con PHP?
« Respuesta #6 en: 06 de Septiembre de 2009, 22:39:37 pm »
¿¿¿¿????, te voy a ser sincero, inentendible, o soy medio idiota, o no se :p. Podrias explicarte un poquito mejor, por que ensima mis conocimientos son bastante cortos. igual te agradesco

Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re:¿Se puede mostrar un archivo Excel en un sitio con PHP?
« Respuesta #7 en: 06 de Septiembre de 2009, 22:49:25 pm »
Ciertamente, la explicación podría ser un poco mas extensa.
Por favor, leete las Normas


Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:¿Se puede mostrar un archivo Excel en un sitio con PHP?
« Respuesta #8 en: 06 de Septiembre de 2009, 22:52:33 pm »
si, la verdad es k yo tambien me lio por poco xD

a ver, el caso es k en sheets[0]['cells'][FILA][COLUMNA] se almacena el contenido

el 1er for usa la variable $i, que coge cada fila
el 2º for usa $j, que coje cada columna

entonces en el for de las filas empezamos la fila de la tabla, y en el otro las columnas:

<?php
require_once 'reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP1251');
$data->setUTFEncoder('mb');
$data->read('nada.xls');
/*
$data->sheets[0]['numRows'] - count rows
$data->sheets[0]['numCols'] - count columns
$data->sheets[0]['cells'][$i][$j] - data from $i-row $j-column
$data->sheets[0]['cellsInfo'][$i][$j] - extended info about cell
$data->sheets[0]['cellsInfo'][$i][$j]['type'] = "date" | "number" | "unknown"
if 'type' == "unknown" - use 'raw' value, because cell contain value with format '0.00';
$data->sheets[0]['cellsInfo'][$i][$j]['raw'] = value if cell without format
$data->sheets[0]['cellsInfo'][$i][$j]['colspan']
$data->sheets[0]['cellsInfo'][$i][$j]['rowspan']
*/
error_reporting(E_ALL ^ E_NOTICE);
echo '<table>';
 for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
echo '<tr>';
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
echo "<td>".$data->sheets[0]['cells'][$i][$j]."</td>";
 }
echo '</tr>';
 echo "\n";
 }
echo '</table>';
?>

Desconectado -RiPeRcOp-

  • PHPer@ Fijo
  • ***
  • Mensajes: 206
  • Karma: 7
  • Sexo: Masculino
  • RiPeR, The House`s assistant
    • Ver Perfil
    • RevolutionW
Re:¿Se puede mostrar un archivo Excel en un sitio con PHP?
« Respuesta #9 en: 06 de Septiembre de 2009, 23:00:19 pm »
Guau, funciona. Ya estaba probando lo que me habias dicho antes, pero no funcionaba del todo bien , se seguia imprimiendo todo en una tabla, pero un dato debajo del otro :P. Gracias, saludos :D

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:¿Se puede mostrar un archivo Excel en un sitio con PHP?
« Respuesta #10 en: 06 de Septiembre de 2009, 23:07:39 pm »
de nada, si en el fondo es solo pensar la solucion, y conseguir ilkuminarte xD