5

こんにちは、phpexcel を使用して Excel テンプレートを作成しようとしています。

何らかの理由で、画像は現在のワークシートを使用する代わりに新しいワークシートを作成します。そのため、作成したExcelファイルを開く と、単一ではなくworksheetworksheet1があります。

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

ここに画像の説明を入力

ここに画像の説明を入力

4

3 に答える 3

9

基本的にPHPExcel、 index を持つ空のシートが既にあるオブジェクトを作成します0

次に、 index で新しいシートを作成します1

次に、すべてのものをインデックス付きのシートに書き込み0、2 番目のシート (新しく作成された) に写真を追加します。

これで問題が解決するはずです:

$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);
于 2013-10-06T20:46:28.000 に答える
0

ルールphpexcelがどのように機能するかはわかりませんが、コンテキストでは、このメソッドで2つのワークシートを作成しているように見えます.2回呼び出しています...

$objWorkSheet = $objPHPExcel->createSheet();  

$objDrawing->setWorksheet($objWorkSheet);
于 2013-10-06T20:48:39.087 に答える