2011-09-29 75 views
23

require_once '../Classes/PHPExcel/IOFactory.php'; 


/** PHPExcel */require_once '../Classes/PHPExcel.php'; 

$excel2 = PHPExcel_IOFactory::createReader('Excel2007'); 
$excel2 = $excel2->load('dentkey.xlsx'); 
$excel2->setLoadAllSheets(); 
$excel2->setActiveSheetIndex(0); 
$excel2->getActiveSheet()->setCellValue('C6', '4')   

->setCellValue('C7', '5')   

    ->setCellValue('C8', '6')  

    ->setCellValue('C9', '7'); 
$excel2->setActiveSheetIndex(1); 
$excel2->getActiveSheet()->setCellValue('A7', '4') 

->setCellValue('C7', '5'); 


$objWriter = PHPExcel_IOFactory::createWriter($excel2, 'Excel2007'); 
$objWriter->save('dentkey1.xlsx'); 


aquí, puedo cargar el archivo (.xlsx) y también puedo modificar (dentkey.xlsx). Pero después de generar un nuevo archivo .xlsx (dentkey1.xlsx) ... todos los datos de las hojas de trabajo que estaban en (dentkey.xlsx) no se están cargando y tampoco puedo establecer el valor para la 2ª hoja de trabajo.PHPExcel modificar archivo .xlsx existente con hoja de cálculo múltiple

podrá ajustar

$excel2->setActiveSheetIndex(1); 
$excel2->getActiveSheet()->setCellValue('A7', '4') 

->setCellValue('C7', '5'); 

no está fijando el valor 5 a la columna 'C7' del generada (dentkey.xlsx) Archivo

Por favor, ayúdame ...

Muchas gracias de avanzar

+0

es posible escribir en un archivo de Excel en la modalidad de apertura? escenario: 1) crear un nuevo objeto de Excel e insertar datos 2) escribir objeto a un archivo existente de Excel mediante la adición de una nueva hoja de por lo que si el archivo tiene la hoja de trabajo: "Hoja 1", "Hoja 2", " Hoja 3 " la escritura creará" Hoja 4 "pero no elimina las hojas escritas previamente – Denish

Respuesta

48

Este código parece estar trabajando, probada en entorno local WampServer Version 2.1

Downalod última versión de PHPExcel desde aquí PHPExcel 1.7.6

Código de trabajo.

<?php 
error_reporting(E_ALL); 
date_default_timezone_set('Europe/London'); 
require_once '../Classes/PHPExcel/IOFactory.php'; 
require_once '../Classes/PHPExcel.php'; 

$excel2 = PHPExcel_IOFactory::createReader('Excel2007'); 
$excel2 = $excel2->load('nTest.xlsx'); // Empty Sheet 
$excel2->setActiveSheetIndex(0); 
$excel2->getActiveSheet()->setCellValue('C6', '4') 
    ->setCellValue('C7', '5') 
    ->setCellValue('C8', '6')  
    ->setCellValue('C9', '7'); 

$excel2->setActiveSheetIndex(1); 
$excel2->getActiveSheet()->setCellValue('A7', '4') 
    ->setCellValue('C7', '5'); 
$objWriter = PHPExcel_IOFactory::createWriter($excel2, 'Excel2007'); 
$objWriter->save('Nimit New.xlsx'); 
?> 

Elimina esta línea de tu código. $excel2->setLoadAllSheets();

la esperanza que esto ayudará

+0

Gracias por responder ... Hola nDudani, solo te dejo saber que mi archivo xlsx (dentket.xlsx) contiene macro y función (cálculo), al usar su código, se genera el nuevo archivo (dentkey1.xlsx), pero no se carga con la función o las macros existentes, espero que comprenda mi Pregunta ..... – Denish

+0

¿Puede subir dentket.xlsx a algún lado? así que puedo probar en el escenario real –

+0

sí, por supuesto, ¿tiene alguna idea de dónde (después de cargar este archivo xlsx) usted y yo podemos acceder a este archivo ... o puede simplemente darme su dirección de correo electrónico que le enviaré inmediatamente ...Muchas gracias por adelantado. – Denish

Cuestiones relacionadas