2011-09-29 9 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'); 


qui, sono in grado di caricare (.xlsx) file e posso anche modificare (dentkey.xlsx). Ma dopo aver generato un nuovo file .xlsx (dentkey1.xlsx) .. tutti i fogli di lavoro che erano in (dentkey.xlsx) non vengono caricati e anche io non posso impostare il valore per il 2o foglio di lavoro.PHPExcel modifica il file .xlsx esistente con più fogli di lavoro

si può multare

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

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

non imposta il valore da 5 a colonna 'C7' di generato (dentkey.xlsx) il file

please help me ...

Grazie mille in avanzare

+0

è possibile scrivere in un Excel in modalità di aggiunta? scenario: 1) creare nuovo oggetto Excel e inserire i dati 2) oggetto in un esistente file excel con l'aggiunta di un nuovo foglio di lavoro quindi se file ha foglio di lavoro: "Foglio 1", "Foglio 2", " Foglio 3 " la scrittura creerà" Foglio 4 "ma non cancella i fogli scritti in precedenza – Denish

risposta

48

Questo codice sembra lavorare, testato in ambiente locale WampServer Version 2.1

Downalod ultima versione di PHPExcel da qui PHPExcel 1.7.6

codice di lavoro.

<?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'); 
?> 

Rimuovere questa riga dal codice. $excel2->setLoadAllSheets();

Spero che questo vi aiuterà

+0

Grazie per la risposta ... hi nDudani, ti faccio solo sapere che il mio file xlsx (dentket.xlsx) contiene macro e funzione (calcolo), usando il tuo codice viene generato il nuovo file (dentkey1.xlsx), ma non è presente con la funzione o i macro esistenti, spero tu capisca la mia domanda ..... – Denish

+0

puoi caricare dentket.xlsx da qualche parte? quindi posso testare nello scenario reale –

+0

sì, naturalmente, hai qualche forma idea in cui (dopo aver caricato questo file xlsx) tu ed io possiamo accedere a questo file..o puoi semplicemente darmi il tuo indirizzo e-mail che ti invierò immediatamente ...Grazie mille in anticipo. – Denish

Problemi correlati