编程语言
首页 > 编程语言> > PHP到Excel,加粗字体

PHP到Excel,加粗字体

作者:互联网

为了通过php将一些数据从excel传输到我,我使用这个函数来创建标签;

function xls_label($row, $col, $value, $bold )  
{       
     echo pack("ssssss", 0x204, 8 + strlen($value), $row, $col, 0x0, strlen($value)); 
     echo $value;  
}

这会以常规字体添加标签.

现在我想知道我需要添加到这个函数中以使标签的字体变粗?

我不想使用任何库,因为我只需要这个简单的功能.

解决方法:

我会说使用一个库,因为(正如Marc B所说)“如果你正在使用格式化/字体,那么它就不再是一个”非常简单“的Excel文件.”

你甚至不说你需要什么BIFF版本,所以我假设BIFF5,因为你使用的标签单元标记为0x204

重要元素是pack语句中的0x0值:

echo pack("ssssss", 0x204, 8 + strlen($value), $row, $col, 0x0, strlen($value));

您需要在“Workbook Global Substream”中创建Font xf记录,然后将0x0值设置为该字体记录的xf标识符,16.

您没有显示足够的代码来确定您需要添加新字体记录的位置,但字体记录的类型为0x0031.您应该已经编写了默认字体记录(xf = 0),因此您需要修改代码的这一部分以创建xf为1的第二个字体记录,这意味着您的0x0需要为0x11 .

对于粗体,此字体记录在偏移量6处需要0x02BC的值.为了将来参考,如果您想要随后添加更多字体样式,斜体需要在偏移量2处使用0x0002的位掩码,而删除线需要在偏移量2处使用0x0008的位掩码.偏移4指向颜色索引,如果要更改字体颜色,而偏移8指示上标/下标,偏移10指示下划线类型.偏移11,12和14标识字体系列,字符集和字体名称的大小,后跟字体名称本身.

您可以在http://msdn.microsoft.com/en-us/library/cc313154(v=office.12).aspx找到所有选项的完整详细信息

正如您可能开始欣赏的那样,这并不像您想要的那样简单明了.这就是为什么我们大多数人在使用复杂的二进制格式而不是试图自己编写时使用库.

标签:export-to-excel,php
来源: https://codeday.me/bug/20190927/1824503.html