如何根据第一行的数据找到正确的列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];
结果数组以列字母为键,以单元格内容为值;然后您可以使用它将适当的列映射到您的数据
我有 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];
结果数组以列字母为键,以单元格内容为值;然后您可以使用它将适当的列映射到您的数据