PHP - Problema con Clases en PHP Alguien puede enseñarm

   
Vista:

Problema con Clases en PHP Alguien puede enseñarm

Publicado por AngelNegro (1 intervención) el 29/10/2007 01:24:03
Estimados PHPAmigos.
Necesito aprender muchisimo mas acerca de las clases en php, ¿alguien puede ayudar? (confio en que si). permitanme conterles la tragedia.
Estoy haciendo una pagina web en la que tengo que trabajar con mysql, como habia de esperarse se interactua con el cliente; esta interaccion involucra tambien la subida de un archivo .xls a la web que luego seria pasada a la base de datos para poder hacer un reporte. Bueno, el calvario empezó justamente despues que pensé mejor en el cliente y busque la manera de automatizar el asunto de la subida del archivo. Es decir, lo mas facil parecia entregarle el archivo xls, que el cliente lo convirtiera en .csv y subiera ese .csv a la web para hacer el proceso de copiar a la BD de mysql y hacer el reporte; pero (seimpre hay "peros") me puse a pensar en la ley de murphy y me dije que lo mas probable era que el cliente iba a hacer cualquier cosa menos lo correcto por el hecho de involucrar varios pasos para el proceso del archivo .xls. Este pequeño detalle me hizo detener la produccion de la pagina desde hace 15 dias (hasta hoy 28/10/07), les juro que soy muy paciente y que me encanta leer, leo en ingles como todo programador que se precie de programador y entiendo una infinidad de terminos que a cualquier gringo pudiera enredar, pero, hoy me rendí y decidi exponer mi situacion puesto que he navegado por una gran cantidad de foros, he bajado unos 15 script (incluso unos 4 en frances y 2 en portugues) que dicen que me pueden ayudar a hacer lo que quiero pero no logro dar con lo que quiero hacer. Por ultimo, el dia de ayer consegui un script (inmeso pero ordenado) que supuestamente manipula archivos en excel, busqué la manera de utilizar solo lo que necesito que es convertir via PHP un archivo de excel a .csv pero se me ha convertido en un problema porque no se como hacer para que convierta el archivo. Supuestamente este script trabaja con una clase y a partir de alli manipula el archivo xls pero no encuentro (o no se como hacerlo) la manera de llamar la clase desde mi archivo. He intentado de todo lo que se y lo que me imagino y no logro dar con el chiste. Por aqui les voy a pasar el PHP con el que estoy trabajando para que lo vean y envien sus opiniones. El Script con el que estoy trabajando se llama PHPExcel 1.5, esta bien documentado y se puede bajar desde su pagina principal, trabajo bajo WinXP, con la excelente herramienta XAMPP (Apache 1.3, PHP5 y MySQL CGI) y un editor de script que se llama HAPedit 3.1 muy bueno tambien.
Aqui va el Script PHP: lo ultimo que hice fue poner lo de class csv2xls pero igual.. no funciona

<?php
include("acceso.php");
?>
<?php
class csv2xls {
public function executeExport();
{
/** PHPExcel */
include 'excel/Classes/PHPExcel.php';
/** PHPExcel_Writer_Excel5 */
include 'excel/Classes/PHPExcel/Writer/CSV.php';
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set properties
$objWriter->open("formulario.xls");
$objWriter->setDelimiter(';');
$objWriter->setEnclosure('');
$objWriter->setLineEnding("\r\n");
$objWriter->setSheetIndex(0);
$objWriter->save("formulario.csv");
// Save Excel a CSV file
$error_reporting = error_reporting(0);
$objWriter = new PHPExcel_Writer_CSV($objPHPExcel);
$xls_data = $objWriter->save();
error_reporting($error_reporting);

return $xls_data;
}
}
?>
<?php
$status = "";
//Maximo tamaño en bytes
$MAX_SIZE = 200000;
//Directorio de subida
$destino = "subido/";
//Array con extensiones
$file_exts = array(".zip",".xls",".txt",".rar",".csv");

if (!is_dir($destino)) {
if (!mkdir($destino))
die ("El directorio no existe o no puede crearse");
}
// obtenemos los datos del archivo
if ($_POST["action"] == "Formcargadatos") {
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = substr(md5(uniqid(rand())),0,6);

//Aca hacemos un log.txt con algunos datos como fecha e IP
if (isset( $_FILES['archivo'])) {
$archivo_log = fopen("excel/log.txt","a");
fwrite($archivo_log,date("Y.m.d h:i:s")." Subida - $_SERVER[REMOTE_ADDR] "
.$_FILES['archivo']['name']." "
.$_FILES['archivo']['type']."\n");
fclose ($archivo_log);

$file_type = $_FILES['archivo']['type'];
$file_name = $_FILES['archivo']['name'];
$file_ext = strtolower(substr($file_name,strrpos($file_name,".")));
}
//Chequeo que los archivos no excedan el limite
if ( isset ($_FILES['archivo']['size']) > $MAX_SIZE)
$mensaje = "El archivo debe pesar menos que 200KB.";
//Chequeo la extension
if (!in_array($file_ext, $file_exts))
$mensaje = "Lo siento, archivos $file_ext no estan permitidos.";

// guardamos el archivo a la carpeta Excel
if ($archivo != "") {
$destino = "subido/".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
//if (move_uploaded_file($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido con Exito.!: <b>".$archivo."</b>";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}
//LISTA DE ARCHIVOS
//$handle=opendir($destino);
$filelist = "";
//while ($archivo = readdir($handle)) {
if(!is_dir($archivo) && !is_link($archivo)) {
$filelist .= "<a title='Archivos en el directorio' href='$destino$archivo'>".$archivo."</a>";
$filelist .= "<sub><small><font color='grey'> ".date("d-m H:i", filemtime($destino))
."</font></small></sub>";
$filelist .="<br />";
}
//}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Cargando Archivo</title>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<meta name="generator" content="HAPedit 3.1" />
<link rel="stylesheet" type="text/css" href="styles/contenedor.css" />
</head>
<title>Llenar Planilla 14-02 por Grupo</title>
<center><font color="green">
<h1><hr /><ins>
<pre>Llenar planillas 14-02 del S.S.O
por Grupo</pre>
</ins></h1></font><hr /></center>
<body bgcolor="#FFFFFF">
<div id="contenedorinterno2">
<center>
<br />
<font color="red"><?php echo $status;?></font>
<br />
<div id="contenido"><br /><b>Archivos Subidos:</b>
<hr width="70%" />
<?
//Muestra los archivos que estan en el directorio
$filelist = "";
//while ($archivo = readdir($handle)) {
if(!is_dir($archivo) && !is_link($archivo)) {
$filelist .= "<a title='Archivos en el directorio' href='$destino$archivo'>".$archivo."</a>";
$filelist .= "<sub><small><font color='grey'> ".date("d-m H:i", filemtime($destino))
."</font></small></sub>";
$filelist .="<br />";
}
echo ($filelist);
//Aqui va el convertidor de xls a csv
$exportar = new csv2xls();
//Se accede a la funcion ejecutaryexportar:
$exportar->executeExport()
//Se cierra la etiqueta de php:
?>
<hr width="70%" />
</div>
</center>
<br /><br /><br /><br />
<div id="contenido">
<center>
<a title="Convertir los datos a CSV" href="upload.php">Convertir archivo en .CSV</a>
<input name="action" type="hidden" value="upload" />
</center>
</div>
</div>
</body>
</html>

Gracias por la ayuda y por el tiempo que se tomaran para ver este embrollo.!!
Estoy decidido a hacer cualquier cambio pero que este dentro de estos parametros: excel a csv en la misma pagina.. que no lo haga el cliente osea, que sea automatica la conversion. Se por todo lo que he navegado que no hay soluciones a la vista de los mortales como yo por eso recurro a ustedes..!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder