Здравствуйте. Распарсил документ xls с помощью PHP Excel parser pro 4.5, подскажите пожалуйста, как мне найти по номеру полиса нужную строку и взять из нее нужные данные. // цикл по рабочим листам for( $ws_num=0; $ws_num<count($exc->worksheet['name']); $ws_num++ ) { echo "<h3>Рабочий лист: "; if( $exc->worksheet['unicode'][$ws_num] ) echo uc2cp1251($exc->worksheet['name'][$ws_num]); else echo $exc->worksheet['name'][$ws_num]; echo "</h3>\n"; $ws = $exc->worksheet['data'][$ws_num]; // если рабочий лист не пустой if ( is_array($ws) && isset($ws['max_row']) && isset($ws['max_col']) ) { echo "<table border=1 cellspacing=0 cellpadding=2>\n"; echo "<tr><td> </td>"; for( $j=0; $j<=$ws['max_col']; $j++ ) { echo "<td class=index> "; if( $j>25 ) echo chr((int)($j/26)+64); echo chr(($j % 26) + 65)." </td>"; } echo "</tr>\n"; // начало цикла по строкам for( $i=0; $i<=$ws['max_row']; $i++ ) { echo "<tr><td class=index>".($i+1)."</td>\n"; // начало цикла по столбцам if( isset($ws['cell'][$i]) && is_array($ws['cell'][$i]) ) { for( $j=0; $j<=$ws['max_col']; $j++ ) { if( isset($ws['cell'][$i][$j]) ) { // Печать данных ячейки echo "<td>"; $data = $ws['cell'][$i][$j]; switch ($data['type']) { // строка case 0: $ind = $data['data']; if( $exc->sst['unicode'][$ind] ) $s = uc2cp1251($exc->sst['data'][$ind]); else $s = $exc->sst['data'][$ind]; if( strlen(trim($s))==0 ) echo " "; else echo $s; break; //целое число case 1: echo (int)($data['data']); break; //вещественное число case 2: echo (float)($data['data']); break; // дата case 3: $ret = $exc->getDateArray($data['data']); printf ("%s-%s-%s",$ret['day'], $ret['month'], $ret['year']); break; default: echo " "; break; echo $data['data']; } xls файлик такого вида: Рассрочка платежа Вид риска Фамилия, Имя, Отчество № паспорта № полиса Дата выдачи 2-й платеж оплатить до 3-й платеж оплатить до 4-й платеж оплатить до Итого каско Шкутник Сергей Владимирович 4508 № 082039 060181 28.09.08 29 580,00р. 29.12.08 29 580,00р. каско Санцевич Александр Михайлович 4504 № 627618 060757 12.12.08 6 600,00р. 12.03.09 6 600,00р. 12.06.09 6 600,00р. 12.09.09 19 800,00р. каско Борзов Алексей Васильевич 1401 № 433607 060377 09.03.09 29 985,00р. 09.09.09 29 985,00р. каско Тимошин Игорь Андреевич 4506 № 286471 060109 16.03.09 13 812,50р. 16.06.09 13 812,50р. 16.09.09 13 812,50р. 20.12.09 41 437,50р. каско Инякин Владимир Викторович 4607 № 226398 060415 28.03.09 12 787,00р. 28.09.09 12 787,00р.
вот коглда ты его парсишь и формируешь таблицу. вместо таблицы формируй массив и по нему потом бегай.
440Hz да там уже готовый массив - $ws['cell'][$i][$j] lssbor Даже не знаю как ответить... просто находишь и берешь... т.е. судя по всему полис это индекс 5 пробегаешь по массиву и где $ws['cell'][$i][5] = нужному полису выводишь: echo $ws['cell'][$i][0].', '.$ws['cell'][$i][1].', '.$ws['cell'][$i][2].', '.$ws['cell'][$i][3].', '.$ws['cell'][$i][4].', '. $ws['cell'][$i][5].', '.и т.д. зависит от того какие поля нужно вывести...
спасибо, сейчас буду пробовать я и думал, что $ws и есть массив, но что-то у меня не получилось выдернуть из него нужное)
не получается выбрать элементы массива $ws['cell'][$i][$j] если его отобразить целиком, то получается не очень понятный набор цифр, нету текста, только суммы правильно вывелись(( http://mcpay.ru/excel1.php PHP: <?PHP include ("excel.php"); $exc = new ExcelFileParser ("log.txt", ABC_NO_LOG); $res = $exc->ParseFromFile("1.xls"); for( $ws_num=0; $ws_num<count($exc->worksheet['name']); $ws_num++ ) { $ws = $exc->worksheet['data'][$ws_num]; if ( is_array($ws) && isset($ws['max_row']) && isset($ws['max_col']) ) { // ?????? ????? ?? ??????? for( $i=0; $i<=$ws['max_row']; $i++ ) { // ?????? ????? ?? ???????? if( isset($ws['cell'][$i]) && is_array($ws['cell'][$i]) ) { for( $j=0; $j<=$ws['max_col']; $j++ ) { if( isset($ws['cell'][$i][$j]) ) { $data = $ws['cell'][$i][$j]; //$k = array_pop($data); //$k = array_shift($data); //if (array_key_exists("060181", $data)) { // echo "The 'first' element is in the array"; //} echo '<br>'; if (in_array("40018", $data)) { echo "Got Irix"; } echo '<br>'; print_r(array_values($data)); } } } } } } // ????????? ? ?????? ????????? function uc2cp1251($str) { return iconv('UNICODELITTLE','cp1251',$str); } ?> [/php]