Я бы сказал, используйте библиотеку, потому что (как сказал Марк Б.) «Если вы используете форматирование / шрифты, то это больше не« очень простой »файл Excel».
Вы неДаже не говорите, какая версия BIFF вам нужна, поэтому я предполагаю BIFF5, потому что вы используете маркер ячейки метки 0x204
. Важным элементом является значение 0x0
в вашем выражении pack:
echo pack("ssssss", 0x204, 8 + strlen($value), $row, $col, 0x0, strlen($value));
Вам потребуется создать запись Font xf в «Глобальном подпотоке книги», затем установить значение 0x0 для идентификатора xf для этой записи шрифта, + 16.
Вы неt покажет достаточно кода, чтобы определить, куда вам нужно добавить новую запись шрифта, но записи шрифта имеют тип 0x0031.Вы уже должны писать запись шрифта по умолчанию (xf = 0), поэтому вам нужно изменить этот раздел кода, чтобы создать вторую запись шрифта с xf 1, что будет означать, что 0x0 должен быть 0x11..
Для полужирного шрифта этой записи шрифта требуется значение 0x02BC со смещением 6. Для дальнейшего использования, если в дальнейшем вы захотите добавить дальнейшую стилизацию шрифта, курсиву требуется битовая маска 0x0002 со смещением 2, а для зачеркиваниябитовая маска 0x0008 со смещением 2. Смещение 4 указывает на индекс цвета, если вы хотите изменить цвет шрифта, тогда как смещение 8 определяет верхний индекс / нижний индекс, а смещение 10 определяет тип подчеркивания.Смещения 11, 12 и 14 определяют семейство шрифтов, набор символов и размер имени шрифта, за которым следует само имя шрифта.
Полную информацию обо всех параметрах можно найти в http://msdn.microsoft.com/en-us/library/cc313154(v=office.12).aspx
Как вы, возможно, сможете начать ценить, это не так просто и понятно, как вам хотелось бы верить.Вот почему большинство из нас используют библиотеки при работе со сложным двоичным форматом, а не пытаются писать все это самостоятельно.