你好,我正在尝试使用 phpexcel 创建一个 excel 模板
由于某种原因,图像创建了新工作表而不是使用当前工作表。 所以当我打开我创建的 excel 文件时,有 worksheet 和 worksheet1 而不是一个。
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');
最佳答案
您基本上创建了一个 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);
关于PhpExcel 创建多个工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19213640/