2016-12-16 95 views
0

我使用PHPExcel读取一个xls文件,这里是我的代码:PHPExcel阅读特定的列

require('PHPExcel/PHPExcel.php'); 
$Reader = PHPExcel_IOFactory::createReaderForFile($xls_path); 
$Reader->setReadDataOnly(true); 
$objXLS = $Reader->load($xls_path); 
$data = $objXLS->getActiveSheet()->toArray(null, true, true, true); 
$objXLS->disconnectWorksheets(); 
unset($objXLS); 
var_dump($data); 

输出为:

Array 
     (
      [A] => 1001 
      [B] => XXX 
      [C] => AAZ878 
      [D] => 19233 
      [E] => pppp 
      [F] => oooo 
      [G] => 276 
      [H] => Y 
     ) 

我怎么能在我的代码指定阅读仅列A,B和H,以便输出将是

Array 
     (
      [A] => 1001 
      [B] => XXX 
      [H] => Y 
     ) 

由于

回答

1

你不能用toArray();但你可以很容易地做一个array_walk(),用一个回调函数将每个子数组修改为你想要的那些列。喜欢的东西:

$columns = array_fill_keys(['A', 'B', 'H'], true); 
array_walk(
    $data, 
    function(&$row) use ($columns) { 
     $row = array_intersect_key($row, $columns); 
    } 
); 
+0

是发挥预期的感谢。 –