有没有办法根据图像的高度设置行高?
示例:我在D12上放置了一个图像(320x480像素),现在我希望第12行的高度适合图像(480像素)。
谢谢!
答案 0 :(得分:5)
这实际上比看起来要复杂得多 - 阅读Microsoft's own article on setting height/width
当您在Excel中指定高度值时,MS Excel会以磅为单位测量行高,其中点大约为1/72英寸或0.035厘米。 PHPExcel确实提供了用于在点和像素之间进行转换的辅助方法。
$pixels = 480;
$points = PHPExcel_Shared_Drawing::pixelsToPoints($pixels);
并且有一个相应的PHPExcel_Shared_Drawing::pointsToPixels()
方法
使用辅助工具计算图像像素分辨率的点数,并将其设置为行高
在内部,Excel OfficeOpenXML格式使用English Metric Units (or EMUs),其中1个EMU定义为1 / 360,000厘米,因此每英寸有914,400个EMU,每点12,700个EMU。
这允许在不同单元之间进行相对简单的转换,并且PHPExcel再次提供了在像素和EMU之间进行转换的辅助方法。
$pixels = 480;
$emu = PHPExcel_Shared_Drawing::pixelsToEMU($pixels);
并且有一个相应的PHPExcel_Shared_Drawing::EMUToPixels()
方法
如果使用Excel2007 Writer(保存为OfficeOpenXML格式)保存文件,则图像尺寸将转换为EMU,并且当文件随后重新加载时,转换中可能会有一些轻微的差异,因此请稍微您为该行设置的高度中的边距