2013-10-06 121 views
5

你好我試圖通過使用phpexcelPhpExcel創建多個工作表

出於某種原因,圖像創建一個Excel模板創建新的工作表,而不是使用目前的一個。 所以當我打開我創建的Excel文件有工作表工作表1而不是單一的。

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

回答

9

基本上,你創建一個PHPExcel對象這已經設有帶指數0空單。

然後,您創建索引爲1的新工作表。

然後,您將所有東西寫入索引0的圖紙中,並將圖片添加到第二張紙上(新創建)。

這應該解決您的問題:

$objPHPExcel->setActiveSheetIndex(1); 

注意,你還是創建一個新的表,甚至是第一個已經存在。 如果您想使用現有的工作表,只要做到以下幾點:

刪除:

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

,做所有的東西與已經存在的表。

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

給繪製在同一張紙上:

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

只是想通了。有什麼方法可以創建一個?因爲有了這個代碼,我使用第二張紙,如你所說的。 –

+0

是的,我只是編輯了答案。 – vikingmaster

0

我不知道該怎麼規則phpexcel但在你的情況下出現這樣你用這種方法創建兩個工作表,因爲你調用兩個倍...

$objWorkSheet = $objPHPExcel->createSheet(); 

$objDrawing->setWorksheet($objWorkSheet); 
0

寫入2片使用PHPEXCEL

01單個Excel工作簿
for ($i=0; $i <2 ; $i++) { 
    $objPHPExcel->getActiveSheet()->setTitle('Worksheet'); //sheetname 
    $newsheet = $objPHPExcel->createSheet(); //sheet create 
}