PHPExcel导入excel到mysql

1、html部分
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>demo</title>
</head>
<body>
<div>
    <form action="import.php" method="post" enctype="multipart/form-data">
        <label for="file">文件名:</label>
        <input type="file" name="file" id="file"><br>
        <input type="submit" name="submit" value="提交">
    </form>
</div>
</body>
</html>
2、php部分
<?php
//连接数据库
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "test";
// 创建连接
$conn = @new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 允许上传的图文件后缀
$allowedExts = array("xls", "xlsx", "csv");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);     // 获取文件后缀名
$filePath = '';
if (($_FILES["file"]["size"] < 2048000)   // 小于 2 MB
    && in_array($extension, $allowedExts)
) {
    if ($_FILES["file"]["error"] > 0) {
        echo "错误:: " . $_FILES["file"]["error"] . "<br>";
    } else {
        // 判断当期目录下的 upload 目录是否存在该文件
        // 如果没有 upload 目录,你需要创建它,upload 目录权限为 777
        if (file_exists("upload/" . $_FILES["file"]["name"])) {
            echo $_FILES["file"]["name"] . " 文件已经存在。 ";
        } else {
            //重命名文件名
            $filename = date('YmdHis' . rand(1000, 9999)) . '.xls';
            // 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
            move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $filename);
            $filePath = "upload/" . $filename;
        }
    }
} else {
    echo "非法的文件格式";
    die();
}

//引入PHPExcel类
require_once dirname(__FILE__) . '/PHPExcel/PHPExcel.php';
//实例化PHPExcel类
$objPHPExcel = new PHPExcel();
//默认用excel2007读取excel,若格式不对,则用之前的版本进行读取
$PHPReader = new PHPExcel_Reader_Excel2007();
if (!$PHPReader->canRead($filePath)) {
    $PHPReader = new PHPExcel_Reader_Excel5();
    if (!$PHPReader->canRead($filePath)) {
        echo 'no Excel';
        return;
    }
}
//读取Excel文件
$PHPExcel = $PHPReader->load($filePath);
//读取excel文件中的第一个工作表
$sheet = $PHPExcel->getSheet(0);
//取得最大的列号
$allColumn = $sheet->getHighestColumn();
//取得最大的行号
$allRow = $sheet->getHighestRow();
//从第3行开始插入,第2行是列名
for ($currentRow = 3; $currentRow <= $allRow; $currentRow++) {
    //获取A列的值
    $name = $PHPExcel->getActiveSheet()->getCell("A" . $currentRow)->getValue();
    //获取B列的值
    $sex = $PHPExcel->getActiveSheet()->getCell("B" . $currentRow)->getValue();
    //获取C列的值
    $age = $PHPExcel->getActiveSheet()->getCell("C" . $currentRow)->getValue();
    //获取D列的值
    $address = $PHPExcel->getActiveSheet()->getCell("D" . $currentRow)->getValue();
    if ($sex === '男') {
        $sex = 1;
    } else {
        $sex = 2;
    }
    //插入数据
    $sql = "INSERT INTO user (name, sex, age, address) VALUES ('$name','$sex','$age','$address')";
    if ($conn->query($sql) === TRUE) {
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
}
echo '导入成功!';
//关闭数据库连接
$conn->close();

?>
3、测试如下

154427_veQ2_3240831.png   154443_x6D0_3240831.png

4、demo地址 

https://git.oschina.net/xzqoschina/excel_import

 

转载于:https://my.oschina.net/mynotes/blog/1142805

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值