PHP XLS 2003(Excel)文件 - 检测单元格垂直对齐

时间:2011-12-05 16:28:58

标签: php excel

我需要对PHP Excel Reader库稍作修改; http://code.google.com/p/php-excel-reader/

我想添加对细胞垂直对齐的支持(顶部,中间,底部)。

以下是检测到正常对齐的方法:

                    $alignbit = ord($data[$pos+10]) & 3;

这是excel 2003格式规范:

http://sc.openoffice.org/excelfileformat.pdf

我不确定这是否是正确的设置:

有没有人知道我需要得到什么(类似于$ alignbit)以获得垂直对齐? (6种可能性中的1种)

enter image description here

enter image description here 谢谢, 韦斯利

1 个答案:

答案 0 :(得分:0)

我个人使用

$horizontalAlign = (0x07 & ord($data[$pos+10])) >> 0;

而不是

$horizontalAlign = ord($data[$pos+10]) & 3;

因为你可以将掩码(0x07)与规范定义更明显地匹配

使用相同的原理,垂直对齐是位6-4,掩码0x70,所以

$verticalAlign = (0x70 & ord($data[$pos+10])) >> 4;
switch ($verticalAlign) {
    case 0:
        //  VERTICAL_TOP
        break;
    case 1:
        //  VERTICAL_CENTER
        break;
    case 2:
        //  VERTICAL_BOTTOM
        break;
    case 3:
        //  VERTICAL_JUSTIFY
        break;
    case 4:
        //  VERTICAL_DISTRIBUTED
        break;
}

PS。当Microsoft发布完整规范时,您为什么还在使用Open Office的部分规范