2013-10-06 8 views
5

привет Я пытаюсь создать шаблон первенствовать с помощью PHPExcelPHPExcel создает несколько рабочих листов

По какой-то причине изображение создает новую таблицу вместо использования текущего. поэтому, когда я открываю файл 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 листов единых книг Excel, используя PHPExcel

for ($i=0; $i <2 ; $i++) { 
    $objPHPExcel->getActiveSheet()->setTitle('Worksheet'); //sheetname 
    $newsheet = $objPHPExcel->createSheet(); //sheet create 
} 
Смежные вопросы