如何根据第一行的数据找到正确的列phpexcel

How to find correct columns by data from 1st row phpexcel

我有 excel 文件,其中包含一些我需要的特定数据。

"Category" 在 excel 文件的第一行。

问题是这些数据可以在不同的列中。

是否可以根据第一行的数据获取列名?

示例sheet:

例如,我需要获取飞机类型和类别,在本例中是列 I 和 H。

目前我是这样做的:

$allDataInSheet = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
$arrayCount = count($allDataInSheet);
for($i=2;$i<=$arrayCount;$i++){
   $aircraftType = trim($allDataInSheet[$i]["I"]);
   $flightCategory = trim($allDataInSheet[$i]["H"]);

   #insert all data in these columns to database
   $query = "INSERT INTO {$databasetable} (aircraftType, flightCategory) 
      VALUES('$aircarftType', '$flightCategory')";  
   mysql_query($query) or trigger_error(mysql_error()." in ".$query);
}

但是当我不知道列字母时我该怎么做呢? 也许在下一个文件中 aircraftType 在 K 中,而 flightCategory 在 L 中...

那么有没有一种方法可以根据第一行的数据获取列字母。

我想如果我将所有数据保存到数据库中,然后用一些 where 子句将其取出,我认为我可以这样做,但也许有更好的方法直接使用 PHPExcel 来完成此操作?

我不是很擅长解释事情,很抱歉,如果这让您感到困惑,请询问,我会尽力解释更多。

在此先感谢您的帮助。

使用工作表的 rangeToArray() 的简单调用将为您提供 headers

的数组
$headers = $objPHPExcel->getActiveSheet()
    ->rangeToArray(
        'A1:'.$objPHPExcel->getActiveSheet()->getHighestColumn().'1',
        null,
        false,
        false,
        true
    );
$headers = $headers[1];

结果数组以列字母为键,以单元格内容为值;然后您可以使用它将适当的列映射到您的数据