2013-10-06 17 views
5

ciao io sto cercando di creare un modello di Excel utilizzando phpexcelPhpExcel crea più fogli di lavoro

Per qualche ragione immagine crea nuovo foglio di lavoro invece di utilizzare quello corrente. così quando apro il file excel che ho creato ci sono foglio di lavoro e foglio di lavoro1 invece di uno solo.

objPHPExcel = new PHPExcel(); 
      $objWorkSheet = $objPHPExcel->createSheet();    

      // Set the active Excel worksheet to sheet 0 
      $objPHPExcel->setActiveSheetIndex(0); 

      //Taslak Verileri 
      $objPHPExcel->getActiveSheet()->SetCellValue('D'.'1', 'Firm'); 
      $objPHPExcel->getActiveSheet()->SetCellValue('J'.'1', 'SFUFORMU - FR.PS.21'); 
      $objPHPExcel->getActiveSheet()->SetCellValue('J'.'3', 'NO:'); 
      $objPHPExcel->getActiveSheet()->SetCellValue('D'.'2', 'Name Surname Signature'); 
      $objPHPExcel->getActiveSheet()->SetCellValue('A'.'4', 'Date'); 
      $objPHPExcel->getActiveSheet()->SetCellValue('A'.'5', 'Stock No:'); 
      $objPHPExcel->getActiveSheet()->SetCellValue('C'.'5', 'Image'); 
      $objPHPExcel->getActiveSheet()->SetCellValue('E'.'5', 'Image'); 
      $objPHPExcel->getActiveSheet()->SetCellValue('G'.'5', 'Resim'); 
      $objPHPExcel->getActiveSheet()->SetCellValue('I'.'5', 'Image'); 
      $objPHPExcel->getActiveSheet()->SetCellValue('K'.'5', 'Quantity'); 
      $objPHPExcel->getActiveSheet()->SetCellValue('M'.'5', 'Price'); 



      $objDrawing = new PHPExcel_Worksheet_Drawing(); 
        $objDrawing->setWorksheet($objWorkSheet); 
        $objDrawing->setName("name"); 
        $objDrawing->setDescription("Description"); 
        $objDrawing->setPath('temp/3.jpeg'); 
        $objDrawing->setCoordinates('F9'); 
        $objDrawing->setOffsetX(1); 
        $objDrawing->setOffsetY(5); 
      $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); 
      $objWriter->save('some_excel_file.xlsx'); 

enter image description here

enter image description here

risposta

9

Che, fondamentalmente creare un oggetto PHPExcel che ha già en foglio vuoto con indice 0.

Quindi si crea un nuovo foglio con indice 1.

Quindi scrivi tutte le tue cose su foglio con l'indice 0 e aggiungi l'immagine sul secondo foglio (appena creato).

Questo dovrebbe risolvere il problema:

$objPHPExcel->setActiveSheetIndex(1); 

nota, che si crea ancora un nuovo foglio, anche il primo esiste già. Se si desidera utilizzare foglio di lavoro già esistente, basta effettuare le seguenti operazioni:

Togliere:

$objWorkSheet = $objPHPExcel->createSheet();    
    $objPHPExcel->setActiveSheetIndex(0); 

e fare tutte le cose con il foglio già esistente.

$sheet = $objPHPExcel->getSheet(0); 
$sheet->setCellValue('D'.'1', 'Firm')//Etc all the stuff. 

Dare al disegno stesso foglio:

$objDrawing->setWorksheet($sheet); 
+0

appena capito. c'è un modo per crearne uno solo? perché con questo codice uso il secondo foglio come hai detto. –

+0

Sì, ho appena modificato la risposta. – vikingmaster

0

Non so come le regole phpexcel ma nel tuo contesto appare come si intende creare due fogli di lavoro con questo metodo causa che si sta chiamando due volte ...

$objWorkSheet = $objPHPExcel->createSheet(); 

$objDrawing->setWorksheet($objWorkSheet); 
0

scrittura 2 foglio una singola cartella di lavoro Excel utilizzando PHPEXCEL

for ($i=0; $i <2 ; $i++) { 
    $objPHPExcel->getActiveSheet()->setTitle('Worksheet'); //sheetname 
    $newsheet = $objPHPExcel->createSheet(); //sheet create 
} 
Problemi correlati