getMessage()); } // 獲取活動工作表 $sheet = $spreadsheet->getActiveSheet(); $status = "Y"; $create_at = date('Y-m-d H:i:s'); $sql_str = "INSERT INTO facility_price (kind, model, seat, numberofstop, speed, price, price_mi, status, create_dt) VALUES (:kind, :model, :seat, :numberofstop, :speed, :price, :price_mi, :status, :create_at)"; // 遍歷工作表中的每一行 $inserttotal = 0; foreach ($sheet->getRowIterator() as $key => $row) { // 獲得單元格迭代器 $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false); // This loops through all cells, // even if a cell value is not set. // By default, only cells that have a value set will be iterated. foreach ($cellIterator as $idx => $cell) { if ($cell !== null) { // 打印單元格數據 // echo $cell->getValue() . '///'; } if ($idx == 'A') { $model = $cell->getValue(); $kind = explode("-", $model)[0]; $seat = explode("*", explode("-", $model)[1])[0]; $numberofstop = explode("*", explode("-", $model)[1])[1]; $spec = explode("-", $model)[2]; if(stripos($spec, "09")){ $speed = 9; }elseif(stripos($spec, "24")){ $speed = 24; $openfn = str_replace("24", "", $spec); }elseif(stripos($spec, "45")){ $speed = 45; $openfn = str_replace("45", "", $spec); }elseif(stripos($spec, "60")){ $speed = 60; $openfn = str_replace("60", "", $spec); }elseif(stripos($spec, "90")){ $speed = 90; $openfn = str_replace("90", "", $spec); }elseif(stripos($spec, "105")){ $speed = 105; $openfn = str_replace("105", "", $spec); }elseif(stripos($spec, "120")){ $speed = 120; $openfn = str_replace("120", "", $spec); }elseif(stripos($spec, "150")){ $speed = 150; $openfn = str_replace("150", "", $spec); }elseif(stripos($spec, "180")){ $speed = 180; $openfn = str_replace("180", "", $spec); } $speed = trim($speed); $openfn = trim($openfn); echo "種類:".$kind; echo "規格:".$model; echo "人乘:".$seat; echo "停數".$numberofstop; echo "速度:".$speed; echo "開門方式:" . $openfn; } elseif($idx == "B"){ $price = (float)$cell->getValue() *10000; echo "價錢:".$price; }elseif($idx == "C"){ $add = (float)$cell->getValue() *10000; echo "+-1停:".$add; }elseif($idx == "D"){ $min_stop = $cell->getValue(); echo "最低停數:".$min_stop; } } echo "------->
"; try{ for($i=2;$i<$numberofstop;$i++){ $stop = ($i <= $min_stop) ? $min_stop : $i; echo $kind . "-" . $seat . "*" . $i . "-" . $openfn . $speed; $new_model = $kind . "-" . $seat . "*" . $i . "-" . $openfn . $speed; $calc_price = $price + $add * ($stop-$numberofstop); echo "價錢:" . $calc_price; //kind, :model, :seat, :numberofstop, :speed, :price, :price_mi, :status, :create_at $stmt = $conn->prepare($sql_str); $stmt->bindParam(':kind', $kind); $stmt->bindParam(':model', $new_model); $stmt->bindParam(':seat', $seat); $stmt->bindParam(':numberofstop', $i); $stmt->bindParam(':speed', $speed); $stmt->bindParam(':price', $calc_price); $stmt->bindParam(':price_mi', $calc_price); $stmt->bindParam(':status', $status); $stmt->bindParam(':create_at', $create_at); $stmt->execute(); $inserttotal++; echo "OK"; echo "
"; } for($i=$numberofstop;$i<=30;$i++){ $stop = ($i <= $min_stop) ? $min_stop : $i; $new_model = $kind . "-" . $seat . "*" . $i . "-" . $openfn . $speed; echo $new_model; $calc_price = $price + $add * ($stop-$numberofstop); echo "價錢:" . $calc_price; $stmt = $conn->prepare($sql_str); $stmt->bindParam(':kind', $kind); $stmt->bindParam(':model', $new_model); $stmt->bindParam(':seat', $seat); $stmt->bindParam(':numberofstop', $i); $stmt->bindParam(':speed', $speed); $stmt->bindParam(':price', $calc_price); $stmt->bindParam(':price_mi', $calc_price); $stmt->bindParam(':status', $status); $stmt->bindParam(':create_at', $create_at); $stmt->execute(); $inserttotal++; echo "OK"; echo "
"; } } catch (PDOException $e) { echo $e->getMessage(); die('Error!:' . $e->getMessage()); } echo "
"; // 換行,以分隔不同的行 } echo $inserttotal; }