2012-10-19 65 views
2

我無法從PHPxcel讀取xls的樣式。我瀏覽一個解決方案很多,但無處不在編寫xls的解決方案,但我喜歡閱讀。 我特別喜歡刪除線,但它不能讀取這個或任何其他樣式信息。 我的代碼如下,它讀取所有數據正確,但沒有更多。我一定要在xls中製作文字風格。PHPexcel無法從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

回答

0

PHPExcel是完全能夠讀取距離的XLS文件方式:你有沒有真正嘗試從細胞獲得款式細節,因爲在這裏你的代碼並不顯示任何測試,以檢查風格已經閱讀?

$objWorksheet->toArray() 

從單元格中讀取內容爲簡單的PHP標量值。

要確定單元格的樣式,您需要閱讀該單元格的樣式細節。

例如

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

API文檔顯示的閱讀習慣信息的所有細節,如顏色,填充,字體,邊框等

編輯

單元格的包含也可能是富文本,與內容的不同部分具有不同的風格。如果您從單元格中檢索富文本值,則使用

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

將返回richtext對象。然後可以迭代richtext對象的每個塊(或運行),檢查該塊的樣式

+0

Thx Mark!問題是我試圖從讀取的數據中獲取樣式,而不是從PHPExcel對象中獲取樣式。 –