За последние 24 часа нас посетили 17578 программистов и 1967 роботов. Сейчас ищут 865 программистов ...

Помогите разобраться с PHP Excel parser

Тема в разделе "Прочие вопросы по PHP", создана пользователем lssbor, 10 авг 2009.

Статус темы:
Закрыта.
  1. lssbor

    lssbor Активный пользователь

    С нами с:
    15 окт 2008
    Сообщения:
    23
    Симпатии:
    0
    Адрес:
    Saint-Petesburg
    Здравствуйте. Распарсил документ 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р.
     
  2. Locker

    Locker Активный пользователь

    С нами с:
    12 авг 2006
    Сообщения:
    124
    Симпатии:
    0
    Рекурсивно проходишь по массиву и смотришь номер полиса
     
Статус темы:
Закрыта.