PHP利用PHPExcel读取Excel报表导入数据库

原生PHP利用PHPExcel读取Excel报表导入数据库

       博主今天遇到一个需求,需要根据报表上的手机号码进行短信发送,打算将这些数据存进数据库进行记录,并且保存发送短信状态,博主一看,报表数据有2000条,便想到懒人做法,打算写个PHP读取报表并存进数据库的功能,总算是完成了,所以打算将这个过程记录下来。

       1、首先我们先去网上下载PHPExcel插件,然后我们找到Classes文件夹下有一个PHPExcel文件夹跟PHPExcel.php文件,我们先在我们的项目下创建一个extra文件夹,将上述文件夹跟文件丢进去,完成我们的前步工作。

       2、我们在我们创建的extra文件夹同级目录中创建一个DataExcept.php文件用来实现我们的读取Excel文件并导入数据库的功能,代码如下:

require_once 'extra/PHPExcel.php';    //引入插件
$filePath = "exportData.xlsx";        //要读取的报表地址
$PHPReader = new PHPExcel_Reader_Excel2007();
if (!$PHPReader->canRead($filePath)) {
    $PHPReader = new PHPExcel_Reader_Excel5();
    if (!$PHPReader->canRead($filePath)) {
        echo 'no Excel';
        exit;
    }
}
$PHPExcel = $PHPReader->load($filePath);
/**读取excel文件中的第一个工作表*/
$currentSheet = $PHPExcel->getSheet(0);
/**取得最大的列号*/
$allColumn = $currentSheet->getHighestColumn();
// echo $allColumn;exit;
/**取得一共有多少行*/
$allRow = $currentSheet->getHighestRow();
/**从第二行开始输出,因为excel表中第一行为列名*/
$val = '';
for ($currentRow = 1; $currentRow <= $allRow; $currentRow++) {
    /**从第A列开始输出*/
    for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) {
        //->getValue();/**ord()将字符转为十进制数*/
        $val .= $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65, $currentRow);
        $val .= "&%|%&";
        /**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换*/
        //$val .= iconv('GBK','UTF-8', $val);
    }
    $val .= "\n";
}
$member_info_arr = explode("\n", $val);
unset($member_info_arr[count($member_info_arr) - 1]);
$present_time = date("Y-m-d H:i:s");
if (count($member_info_arr) <= 0) {

}
$arr = array();
unset($member_info_arr[0]);
// var_dump($member_info_arr);exit;
foreach ($member_info_arr as $key => $val) {
    $arr[$key] = explode("&%|%&", $val);
}

$con = mysqli_connect("数据库地址", "用户名", "密码", "数据库");
if (!$con) {
    die('Could not connect: ' . mysql_error());
}
#防止文中乱码
$program_char = "utf8";
mysqli_set_charset($con, $program_char);
//添加数据
if (count($arr) > 0) {
    foreach ($arr as $key => $value) {
        //数据库添加操作按$value[1]获取报表列数据
    }

      这样我们便完成了PHP读取Excel报表导入数据库的功能,各位可以试试~

1条评论

  • 阿欣 2018-08-20 16:02:11

    赞,自己弄了半天,看了博主的这篇教程,终于弄好了,灰常感谢

    回复

发表评论