Удалить пустые первые строки в PHPexcel - PullRequest
0 голосов
/ 10 октября 2019

Я загружаю файл excel в базу данных на сайте с помощью phpexcel. Но первая строка пропускается и вводится мои данные. Результаты показаны на рисунке ниже.

Мне нужна помощь.

Как я могу решить?

enter image description here

У меня есть следующий код.

<?
    include_once('./_common.php'); //database option 
    include 'Classes/PHPExcel.php'; 
    include 'Classes/PHPExcel/IOFactory.php'; //load phpexcel

    $up_file = "aaa.xlsx";
    try {
        $objReader = PHPExcel_IOFactory::createReaderForFile($up_file);

        //set the read only
        $objReader->setReadDataOnly(true);

        //read a excel file
        $objExcel = $objReader->load($up_file);

        // select first cell
        $objExcel->setActiveSheetIndex(0);

        $objWorksheet = $objExcel->getActiveSheet();

        $rowIterator = $objWorksheet->getRowIterator();


        foreach ($rowIterator as $row) {
                   $cellIterator = $row->getCellIterator();
                   $cellIterator->setIterateOnlyExistingCells(false);
        }

        $maxRow = $objWorksheet->getHighestRow();
        $maxCell = $objWorksheet->getHighestColumn();
         for ($i = 0 ; $i <= $maxRow; $i++) {

                 $acell = $objWorksheet->getCell('A' . $i)->getValue(); // A
                 $bcell = $objWorksheet->getCell('B' . $i)->getValue(); // B

                 $acell  = addslashes($acell);
                 $bcell  = addslashes($bcell);

              //$sql = "insert into echo_test (a,b,c,d,e) values ('$a','$b','$c','$d','$e')";
                $sql = "insert into echo_excel set 
                bcat = '$acell',
                scat = '$bcell',

              ";
              sql_query($sql);
          }
       echo $maxRow . " Data inserting finished !";



    } catch (exception $e) {
        echo 'error!';
    }

    ?>

1 Ответ

0 голосов
/ 10 октября 2019

Просто протестируйте переменную $bcat, чтобы убедиться, что она пуста, прежде чем пытаться вставить данные в таблицу.

$acell = $objWorksheet->getCell('A' . $i)->getValue(); // A
$bcell = $objWorksheet->getCell('B' . $i)->getValue(); // B

if (empty($bcell)) {continue;}  // no value for bcat so go to the next row

$acell  = addslashes($acell);
$bcell  = addslashes($bcell);
...