PHP
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报表导入数据库的功能,各位可以试试~
赞,自己弄了半天,看了博主的这篇教程,终于弄好了,灰常感谢
回复