2015-12-13 2 views
0

У меня есть файл excel с некоторыми определенными данными, которые мне нужны.Как найти правильные столбцы по данным из первой строки phpexcel

«Категория» находится в первом ряду файла excel.

Дело в том, что эти данные могут быть в разных колонках.

Возможно ли получить имя столбца на основе данных в первой строке?

Пример листа:

enter image description here

Например, мне нужно, чтобы получить тип воздушного судна и категории, которым в данном случае являются столбцы 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 ...

Так есть способ получить буквенное обозначение столбца на основе данных в первой строке.

Я думаю, что мог бы сделать это, если бы я сохранил все данные в базе данных, а затем вытащил их с некоторыми предложениями, но, возможно, есть лучший способ сделать это непосредственно с помощью PHPExcel?

Я не очень хорошо объясняю вещи, поэтому извините, если это сбивает с толку, спросите, и я попытаюсь объяснить больше.

Заранее благодарим за помощь.

ответ

0

Простой вызов с помощью рабочего листа rangeToArray() даст вам массив заголовков

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

Полученный массив имеет букву столбца в качестве ключа, а содержание клеток в качестве значения; и вы можете использовать его для сопоставления соответствующих столбцов с вашими данными.

+0

Спасибо за ответ, я пробовал вот так http://pastebin.com/xHkAFJFh, но я получаю сообщение об ошибке: Fatal error: Uncaught exception 'PHPExcel_Exception' с сообщением «Недопустимая координата ячейки AQ» в ... – user2033139

+0

Извинения, ошибка в определении диапазона .... отредактировал мой ответ и исправлено сейчас –

+0

Благодарим за помощь. – user2033139

Смежные вопросы