Я использую SpreadsheetReader
для импорта электронной таблицы Excel на сервер MySQL, однако она читает только первую строку. Что я делаю не так в коде и как заставить его читать все строки?
<?php
require_once('../spreadsheet-reader-master/php-excel-reader/excel_reader2.php');
require_once('../spreadsheet-reader-master/SpreadsheetReader.php');
if (isset($_POST["import"])) {
if (!$db) {
die("Connection failed: " . mysqli_connect_error());
}
$device_type_id = $_POST['device_type_id'];
$allowedFileType = ['application/vnd.ms-excel', 'text/xls', 'text/xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];
if (in_array($_FILES["file"]["type"], $allowedFileType)) {
$targetPath = '../upload/' . $_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'], $targetPath);
$Reader = new SpreadsheetReader($targetPath);
$sheetCount = count($Reader->sheets());
error_reporting(E_ALL ^ E_NOTICE); //this hides all notices that php displays on the page
for ($i = 0; $i < $sheetCount; $i++) {
$Reader->ChangeSheet($i);
foreach ($Reader as $Row) {
$serial_imei = "";
if (isset($Row[0])) {
$serial_imei = mysqli_real_escape_string($db, $Row[0]);
}
$serial_no = "";
if (isset($Row[1])) {
$serial_no = mysqli_real_escape_string($db, $Row[1]);
}
if (empty($device_type_id)) {
echo "Please select a device type from the dropdown list!";
}
if (!empty($serial_no) || !empty($serial_imei) || !empty($device_type_id)) {
$query = "INSERT INTO
devices (serial_imei, serial_no, type_id)
VALUES ('$serial_imei', '$serial_no', '$device_type_id')";
if (mysqli_multi_query($db, $query)) {
echo "New records created successfully";
} else {
echo "Error: " . $query . "<br>" . mysqli_error($db);
}
mysqli_close($db);
}
}
}
} else {
$type = "error";
$message = "Invalid File Type. Upload Excel File.";
}
}
?>