2

我无法通过 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() );

有人有想法吗?

谢谢

4

1 回答 1

0

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

$objWorksheet->toArray()

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

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

例如

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

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

编辑

单元格的包含也可以是富文本,内容的不同部分具有不同的样式。如果您使用从单元格中检索富文本值

$objPHPExcel->getActiveSheet()->getCellValue('B2');

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

于 2012-10-19T20:32:00.267 回答