14 changed files with 190 additions and 21 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,151 @@ |
|||||
|
<?php |
||||
|
|
||||
|
require_once('./conn.php'); |
||||
|
require 'vendor/autoload.php'; |
||||
|
ini_set('date.timezone', 'Asia/Taipei'); |
||||
|
|
||||
|
$id = $_GET['id']; |
||||
|
|
||||
|
use PhpOffice\PhpSpreadsheet\IOFactory; |
||||
|
|
||||
|
if($id == 999){ |
||||
|
$filePath = './option/f1.xlsx'; |
||||
|
try { |
||||
|
$spreadsheet = IOFactory::load($filePath); |
||||
|
} catch (\PhpOffice\PhpSpreadsheet\Reader\Exception $e) { |
||||
|
die('Error loading file: ' . $e->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 "-------><br>"; |
||||
|
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 "<br>"; |
||||
|
} |
||||
|
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 "<br>"; |
||||
|
} |
||||
|
} |
||||
|
catch (PDOException $e) { |
||||
|
echo $e->getMessage(); |
||||
|
die('Error!:' . $e->getMessage()); |
||||
|
} |
||||
|
|
||||
|
echo "<br>"; // 換行,以分隔不同的行 |
||||
|
|
||||
|
|
||||
|
} |
||||
|
echo $inserttotal; |
||||
|
|
||||
|
} |
||||
|
|
Loading…
Reference in new issue