2013-10-06 10 views
5

bonjour je suis en train de créer un modèle Excel en utilisant PHPExcelPHPExcel crée plusieurs feuilles

Pour une image raison crée une nouvelle feuille de calcul au lieu d'utiliser un courant. donc quand j'ouvre le fichier Excel que j'ai créé il y a la feuille de travail et la feuille de travail1 au lieu d'une seule.

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

Répondre

9

Vous créez essentiellement un objet PHPExcel qui a déjà en feuille vide avec l'index 0.

Ensuite, vous créez une nouvelle feuille avec l'index 1.

Ensuite, vous écrivez tous vos trucs à la feuille avec l'index 0 et ajoutez l'image sur la deuxième feuille (nouvellement créé).

Cela devrait résoudre votre problème:

$objPHPExcel->setActiveSheetIndex(1); 

Notez que vous créez encore une nouvelle feuille, même le premier existe déjà. Si vous souhaitez utiliser feuille de calcul déjà existante, il suffit de ce qui suit:

Supprimer:

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

Et faire toutes les choses avec une feuille déjà existante.

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

Donnez le dessin la même feuille:

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

juste compris. est-il possible de créer un seul? parce qu'avec ce code j'utilise une deuxième feuille comme vous l'avez mentionné. –

+0

Oui, je viens d'éditer la réponse. – vikingmaster

0

Je ne sais pas comment les règles PHPExcel mais dans votre contexte apparaît comme vous créez deux feuilles de travail avec cette méthode parce que vous appelez deux fois ...

$objWorkSheet = $objPHPExcel->createSheet(); 

$objDrawing->setWorksheet($objWorkSheet); 
0

écrire 2 feuilles un seul classeur Excel à l'aide PHPExcel

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