Foros del Web » Programando para Internet » PHP »

Insertar datos a columnas de un Excel ya existente

Estas en el tema de Insertar datos a columnas de un Excel ya existente en el foro de PHP en Foros del Web. Hola amigos! Soy nuevo en esto de la programacion en PHP y tengo problemas en un proyecto que estoy desarrollando, espero que me puedan ayudar. ...
  #1 (permalink)  
Antiguo 30/10/2012, 17:07
 
Fecha de Ingreso: octubre-2012
Mensajes: 1
Antigüedad: 11 años, 6 meses
Puntos: 0
Insertar datos a columnas de un Excel ya existente

Hola amigos! Soy nuevo en esto de la programacion en PHP y tengo problemas en un proyecto que estoy desarrollando, espero que me puedan ayudar. La idea es subir datos a un archivo de excel ya existente, hay que agregar 4 columnas nuevas al archivo y en cada una de esas columnas debe tener el mismo dato y debe insertar hasta que termine de leer el ultimo registro que siempre varia dependiendo el archivo. Al momento de ejecutarlo no me marca error pero no me escribe los datos, les agradeceria infinitamente si me ayudaran


<!-- FORMULARIO PARA SOLICITAR LA CARGA DEL EXCEL -->

Seleccione el archivo a modificar:
<br><br/><form name="importa" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<input type="file" name="excel" />
<input type='submit' name='enviar' value="Subir Datos" />
<input type="hidden" value="upload" name="action" />
</form>

<!-- CARGA LA MISMA PAGINA MANDANDO LA VARIABLE upload -->

<?php

extract($_POST);
if ($action == 'upload') //si action tiene como valor UPLOAD haga algo (el value de este hidden es es UPLOAD iniciado desde el value
{
//cargamos el archivo al servidor con el mismo nombre(solo le agregue el sufijo bak_)
$archivo = $_FILES['excel']['name']; //captura el nombre del archivo
$tipo = $_FILES['excel']['type']; //captura el tipo de archivo (2003 o 2007)
$destino = "bak_".$archivo; //lugar donde se copiara el archivo

if (copy($_FILES['excel']['tmp_name'],$destino)) //si dese copiar la variable excel (archivo).nombreTemporal a destino (bak_.archivo) (si se ha dejado copiar)
{echo "Archivo Cargado Con Exito";}
else { echo "Error al Cargar el Archivo";}

if (file_exists ("bak_".$archivo)) //validacion para saber si el archivo ya existe previamente
{

/** Invocacion de Clases necesarias */
require_once('Classes/PHPExcel.php');
require_once('Classes/PHPExcel/Reader/Excel2007.php');

// Cargando la hoja de calculo
$objReader = new PHPExcel_Reader_Excel2007(); //instancio un objeto como PHPExcelReader(objeto de captura de datos de excel)
$objPHPExcel = $objReader->load("bak_".$archivo); //carga en objphpExcel por medio de objReader,el nombre del archivo
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); //objeto de PHPExcel, para escribir en el excel
$objFecha = new PHPExcel_Shared_Date();

// Asignar hoja de excel activa
$objPHPExcel->setActiveSheetIndex(0); //objPHPExcel tomara la posicion de hoja (en esta caso 0 o 1) con el setActiveSheetIndex(numeroHoja)

// Llenamos un arreglo con los datos del archivo xlsx
$i=2; //celda inicial en la cual empezara a realizar el barrido de la grilla de excel
$param=0;
while($param==0) //mientras el parametro siga en 0 (iniciado antes) que quiere decir que no ha encontrado un NULL entonces siga metiendo datos
{
$objPHPExcel->getActiveSheet()->setCellValue("K2", "Perro");
$objPHPExcel->getActiveSheet()->setCellValue("L2", "Gato");
$objPHPExcel->getActiveSheet()->setCellValue("M2", "Loro");
$objPHPExcel->getActiveSheet()->setCellValue("N2", "Mariposa");

if($objPHPExcel->getActiveSheet()->getCell('A'.$i)->getCalculatedValue()==NULL) //pregunto que si ha encontrado un valor null en una columna inicie un parametro en 1 que indicaria el fin del ciclo while
{
$param=1; //para detener el ciclo cuando haya encontrado un valor NULL
}
$i++;
}
}
else//si no se ha cargado el bak
{
echo "Necesitas primero importar el archivo";}
unlink($destino); //desenlazar a destino el lugar donde salen los datos(archivo)
}
echo "Los datos se han grabado con &eacute;xito.";
?>

Etiquetas: columnas, excel, existente, formulario, registro, variables
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 06:12.