首先下載Excel類庫,直接解壓後放到vendor文件夾中。點擊下載
實例
function upExecel(){
//判斷是否選擇了要上傳的表格
if (empty($_POST['myfile'])) {
echo "<script>alert(您未選擇表格);history.go(-1);</script>";
}
//獲取表格的大小,限制上傳表格的大小5M
$file_size = $_FILES['myfile']['size'];
if ($file_size>5*1024*1024) {
echo "<script>alert('上傳失敗,上傳的表格不能超過5M的大小');history.go(-1);</script>";
exit();
}
//限制上傳表格類型
$file_type = $_FILES['myfile']['type'];
//application/vnd.ms-excel 爲xls文件類型
if ($file_type!='application/vnd.ms-excel') {
echo "<script>alert('上傳失敗,只能上傳excel2003的xls格式!');history.go(-1)</script>";
exit();
}
//判斷表格是否上傳成功
if (is_uploaded_file($_FILES['myfile']['tmp_name'])) {
Vendor('PHPExcel.PHPExcel');
Vendor('PHPExcel.PHPExcel.Worksheet.Drawing');
Vendor('PHPExcel.PHPExcel.Writer.Excel2007');
//以上三步加載phpExcel的類
$objReader = \PHPExcel_IOFactory::createReader('Excel2007');//use excel2007 for 2007 format
//接收存在緩存中的excel表格
$filename = $_FILES['myfile']['tmp_name'];
$objPHPExcel = $objReader->load($filename); //$filename可以是上傳的表格,或者是指定的表格
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得總行數
// $highestColumn = $sheet->getHighestColumn(); // 取得總列數
//循環讀取excel表格,讀取一條,插入一條
//j表示從哪一行開始讀取 從第二行開始讀取,因爲第一行是標題不保存
//$a表示列號
for($j=2;$j<=$highestRow;$j++)
{
$a = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();//獲取A(學生名字)列的值
$b = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();//獲取B(性別)列的值
$c = $objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue();//獲取C(入學時間)列的值
$d = $objPHPExcel->getActiveSheet()->getCell("D".$j)->getValue();//獲取D(班級)列的值
$e = $objPHPExcel->getActiveSheet()->getCell("E".$j)->getValue();//獲取D(學校)列的值
//null 爲主鍵id,自增可用null表示自動添加
$sql = "INSERT INTO stu set stuname='$a',sex='$b',stime='$c',classid='$d',schoolid='$e'";
// echo "$sql";
// exit();
$con=mysqli_connect('localhost','root','root','stuadmin');
$res = mysqli_query($con,$sql);
if(!$res){
echo '添加失敗!';
header('Location:'.url('/index/up/morestuadd'));
}
}
echo "<script language=\"javascript\">alert(\"上傳成功!\")</script>";
}
}