PHPexcel无法从xls中读取样式

时间:2012-10-19 17:29:20

标签: styles phpexcel

我无法通过PHPexcel从xls读取样式。我浏览了很多解决方案,但到处都在为写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() );

有人有想法吗?

THX

1 个答案:

答案 0 :(得分:0)

PHPExcel完全能够从xls文件中读取样式:您是否真的尝试从单元格中获取样式详细信息,因为此处的代码未显示任何测试以检查样式是否已被读取?

$objWorksheet->toArray()

将单元格中的内容读取为简单的PHP标量值。

要确定单元格的样式,您需要阅读该单元格的样式详细信息。

e.g。

$cellHasStrikeThrough = $objPHPExcel->getActiveSheet()->getStyle('B2')
    ->getFont()->getStrikethrough();

API文档显示了阅读样式信息的所有详细信息,如颜色,填充,字体,边框等

修改

单元格的包含也可能是富文本,内容的不同部分具有不同的样式。如果使用

从单元格中检索富文本值
$objPHPExcel->getActiveSheet()->getCellValue('B2');

将返回richtext对象。然后可以遍历richtext对象的每个块(或运行),检查该块的样式