PHPExcel右对齐图像

我正在尝试使用PHPExcel对齐图像,但我不能,因为图像覆盖在工作表上方.

// Create new picture object
  $objDrawing = new PHPExcel_Worksheet_Drawing();
  $objDrawing->setPath('my_img.jpg');

// Insert picture
  $objDrawing->setCoordinates('A1');
  $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());

// Style cell
  $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

A1的文本对齐方式更改为右对齐,但图像仍然在左侧对齐.

解决方法:

有同样的挑战:如何正确地将图片与单元格对齐.我正在使用PHP Spreadsheet,它继承了PHP Excel.这有效:

use PHPOffice\PHPSpreadsheet\Worksheet;
use PHPOffice\PHPSpreadsheet\Worksheet\Drawing;

$ws = $spreadsheet->getActiveSheet(); 
$logoPath = __DIR__ . '/reporting/templates/Smalllogo.jpg';
$drawing = new Drawing();
$drawing->setPath($logoPath);
$drawing->setCoordinates('K2');
$drawing->setHeight(45); //pixels
$colWidth = $ws->getColumnDimension('K')->getWidth();
if ($colWidth == -1) { //not defined which means we have the standard width
    $colWidthPixels = 64; //pixels, this is the standard width of an Excel cell in pixels = 9.140625 char units outer size
} else {                  //innner width is 8.43 char units
    $colWidthPixels = $colWidth * 7.0017094; //colwidht in Char Units * Pixels per CharUnit
}
$offsetX = $colWidthPixels - $drawing->getWidth(); //pixels
$drawing->setoffsetX($offsetX); //pixels
$drawing->setWorksheet($ws);

它应该与PHPExcel以相同的方式工作.诀窍是将列宽转换为Excel像素,并使用offsetX从左水平列边框获得正确的偏移量.如果图片比列宽,则偏移量将为负.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...