PHPexcel не может читать стили из xls
Я не могу читать стили из xls с помощью PHPexcel. Я часто ищу решение, но везде пишу решения для написания xls, но мне нравится это читать. Мне особенно нравится зачеркивание, но он не может прочитать ни эту, ни любую другую информацию о стиле. Мой код следующий, он читает все данные правильно, но не более того. Я уверен, что сделать текст в стиле XLS.
require_once 'PHPExcel.php';
$filepath = "path/to/your/xls/file.xls";
$inputFileType = PHPExcel_IOFactory::identify($filepath);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($filepath);
$total_sheets = $objPHPExcel->getSheetCount();
$allSheetName = $objPHPExcel->getSheetNames();
$objWorksheet = $objPHPExcel->setActiveSheetIndex(0) ;
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$headingsArray = $objWorksheet->rangeToArray('A1:' . $highestColumn . '1', null, true, true, true);
$headingsArray = $headingsArray[1];
print_r( $objWorksheet->toArray() );
У кого-нибудь есть идея?
Спасибо
1 ответ
PHPExcel вполне способен считывать стили из файлов xls: вы действительно пытались получить детали стилей из ячейки, потому что в вашем коде нет тестов, чтобы проверить, что стили были прочитаны?
$objWorksheet->toArray()
читает содержимое из ячеек как простые скалярные значения PHP.
Чтобы определить стиль ячейки, вам нужно прочитать детали стиля этой ячейки.
например
$cellHasStrikeThrough = $objPHPExcel->getActiveSheet()->getStyle('B2')
->getFont()->getStrikethrough();
Документация API показывает все детали для чтения информации о стилях, такие как цвета, заливки, шрифты, границы и т. Д.
РЕДАКТИРОВАТЬ
Содержимое ячейки также может быть форматированным текстом, причем разные части содержимого имеют разные стили. Если вы получаете значение расширенного текста из ячейки, используя
$objPHPExcel->getActiveSheet()->getCellValue('B2');
объект rich text будет возвращен. Затем можно выполнить итерацию по каждому блоку (или прогону) объекта rich text, проверяя стиль для этого блока.