PHPExcel:设置行高(以像素为单位)

Jor*_*ort 7 php phpexcel

我正在使用PHPExcel使用PHP将一组图像写入Excel文件.插入图像似乎不是问题,但是我在设置适当的行高以匹配图像高度时遇到一些困难.

我设法使用pixelsToCellDimension来计算正确的列宽,但这似乎不适合计算行高.在查看PHPExcel_Shared_Drawing类中的其余函数并使用Google搜索之后,我对如何执行此操作一无所知.

我的代码到目前为止:

// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Set document properties
$objPHPExcel->getProperties()->setCreator("creator")
    ->setLastModifiedBy("modifiedby")
    ->setTitle("Title")
    ->setSubject("Subject")
    ->setDescription("Description")
    ->setKeywords("keyword1 keyword2")
    ->setCategory("category");

// Get default font
$defaultFont = $objPHPExcel->getDefaultStyle()->getFont();
Run Code Online (Sandbox Code Playgroud)

[生成我的图像并将其路径添加到数组的一些代码]

foreach( $filePaths as $i => $filePath ) {
    $objDrawing = new PHPExcel_Worksheet_Drawing();
    $objDrawing->setWorkSheet( $objPHPExcel->getActiveSheet() );
    $objDrawing->setName("name");
    $objDrawing->setDescription("Description");
    $objDrawing->setPath( $filePath );

    $size = getimagesize($filePath);
    $columnWidth = PHPExcel_Shared_Drawing::pixelsToCellDimension($size[0], $defaultFont);
    $rowHeight = PHPExcel_Shared_Drawing::pixelsToCellDimension($size[1], $defaultFont);

    $objDrawing->setCoordinates('A' . ($i+1) );
    $objDrawing->setOffsetX(0);
    $objDrawing->setOffsetY(0);

    // set row/column (cell) sizes to match image size
    $objPHPExcel->getActiveSheet()
       ->getColumnDimension('A')
       ->setWidth( $columnWidth );
    $objPHPExcel->getActiveSheet()
       ->getRowDimension( $i+1 )
       ->setRowHeight( $rowHeight );
}

// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Worksheet 1');

// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);

// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="myMCS Scancode Export.xls"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
Run Code Online (Sandbox Code Playgroud)

小智 -1

我有同样的问题。如果可能,请在图片单元格中包含文本“\n”。例如,向单元格添加 5 次“\n”=>“\n\n\n\n\n”以获得 100 像素的图像高度大小。

$objPHPExcel->getActiveSheet()->setCellValue($colLetter.$idLine, "\n\n\n\n\n");
Run Code Online (Sandbox Code Playgroud)

但它不适用于合并单元格

我希望它能帮助你