2012-12-31 45 views
4
<?php 

error_reporting(E_ALL); 
set_time_limit(0); 

date_default_timezone_set('Europe/London'); 

?> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

<title>PHPExcel Reader Example #09</title> 

</head> 
<body> 


<?php 

/** Include path **/ 
set_include_path(get_include_path() . PATH_SEPARATOR . '../../../Classes/'); 

/** PHPExcel_IOFactory */ 
include 'C:\webserver\www\Classes\PHPExcel\IOFactory.php'; 


$inputFileType = 'Excel5'; 
// $inputFileType = 'Excel2007'; 
// $inputFileType = 'Excel2003XML'; 
// $inputFileType = 'OOCalc'; 
// $inputFileType = 'Gnumeric'; 
$inputFileName = './sampleData/Book1.xls'; 
$sheetname = 'Data Sheet #3'; 


class MyReadFilter implements PHPExcel_Reader_IReadFilter 
{ 
    public function readCell($column, $row, $worksheetName = '') { 

     if ($row >= 1 && $row <= 1) { 
      if (in_array($column,range('A','A'))) { 
       return true; 
      } 
     } 
     return false; 
    } 
} 

$filterSubset = new MyReadFilter(); 

$objReader = PHPExcel_IOFactory::createReader($inputFileType); 
$objReader->setLoadSheetsOnly($sheetname); 
$objReader->setReadFilter($filterSubset); 
$objPHPExcel = $objReader->load($inputFileName); 
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); 
var_dump($sheetData); 


?> 
<body> 
</html> 

當運行aboce代碼它給我這個輸出只想從Excel文件打印單元格數據使用PHPExcel?

array(1) { [1]=> array(1) { ["A"]=> string(6) "ABCDEF" } } 

在上述輸出ABCDEF是第一小區的數據。所以我只想要ABCDEF而不是其他的東西,如上所示。

回答

4

這是因爲您要求PHPExcel將整個工作表作爲數組提供給您。

如果你只是想單元格A1的使用價值:在the documentation

$objPHPExcel->getActiveSheet()->getCell('A1')->getValue(); 

代替

$objPHPExcel->getActiveSheet()->toArray(null,true,true,true); 

更多關於這一點,在這種情況下,文件 「PHPExcel開發商documentation.pdf」。

然後,您也可以完全刪除讀取過濾器。單元格以懶惰的方式讀取,所以如果您只是直接訪問單元格A1,則不會使用讀取過濾器保存任何內容。

+0

字符串(6)「ABCDEF」 這個輸出我通過使用上面的代碼行得到了。 –

+0

是的,很好,不是嗎? :) – AndreKR

+0

但我只想要ABCDEF –

0

包括'C:\webserver\www\Classes\PHPExcel\IOFactory.php';

這個文件包含了本文件中包含的文件。