PHP в Excel, жирный шрифт - PullRequest
       24

PHP в Excel, жирный шрифт

2 голосов
/ 11 августа 2010

Для передачи некоторых данных из Excel в php, я использую эту функцию для создания меток;

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

Это добавляет метку обычным шрифтом.

Теперь мне было интересноЧто мне нужно добавить к этой функции, чтобы сделать шрифт метки жирным?


Я не хочу использовать какую-либо библиотеку, поскольку мне просто нужна эта простая функция.

Ответы [ 3 ]

6 голосов
/ 19 августа 2010

Я бы сказал, используйте библиотеку, потому что (как сказал Марк Б.) «Если вы используете форматирование / шрифты, то это больше не« очень простой »файл 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

Как вы, возможно, сможете начать ценить, это не так просто и понятно, как вам хотелось бы верить.Вот почему большинство из нас используют библиотеки при работе со сложным двоичным форматом, а не пытаются писать все это самостоятельно.

5 голосов
/ 17 августа 2010

Расскажу вам секрет: создайте таблицу HTML и запишите ее в файл с расширением .XLS. Когда Excel открывает его, он читает форматирование так, как это делает IE, но теперь у вас есть электронная таблица. Это означает, что вы можете применять любое форматирование, какое пожелаете. Соедините это с PHP, и вы станете золотым мальчиком в отделе веб-разработки на неделю.

1 голос
/ 19 августа 2010

Я использую следующий формат, я использую все html-теги, такие как жирный шрифт, шрифт и т. Д.

<?php
$fn=$_POST[fname];
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=$fn.xls");
header("Pragma: no-cache");
header("Expires: 0");

$c=$_POST[con];
print "$c";
?>

переменная post генерируется в некоторых других файлах и отправляется в этот файл ..

...