php中excel导入mysql_PHPExcel如何将excel文件导入MySQL数据库?

自己解决了,我写了一个import.php和import.html,其中的db和dbconfig请参考Veo老师《PHPHExcel的探索之旅课程》

import.html代码html>

Excel导入phpMyAdmin数据库

import.php代码<?php

session_start();

header("Content-type:text/html;charset:utf-8");

//全局变量

$succ_result=0;

$error_result=0;

$file=$_FILES['filename'];

$max_size="2000000"; //最大文件限制(单位:byte)

$fname=$file['name'];

$ftype=strtolower(substr(strrchr($fname,'.'),1));

//文件格式

$uploadfile=$file['tmp_name'];

if($_SERVER['REQUEST_METHOD']=='POST'){

if(is_uploaded_file($uploadfile)){

if($file['size']>$max_size){

echo "Import file is too large";

exit;

}

if($ftype!='xls'){

echo "Import file type is error";

exit;

}

}else{

echo "The file is not empty!";

exit;

}

}

$dir=dirname(__FILE__);//查找当前脚本所在路径

require $dir."/db.php";//引入mysql操作类文件

$db=new db($phpexcel);//实例化db类 连接数据库

require_once $dir."/PHPExcel/PHPExcel.php";//引入PHPExcel

require_once $dir."/PHPExcel/PHPExcel/IOFactory.php";

require_once $dir."/PHPExcel/PHPExcel/Reader/Excel5.php";

$objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format

$objPHPExcel = $objReader->load($uploadfile);

$sheet = $objPHPExcel->getSheet(0);

$highestRow = $sheet->getHighestRow(); // 取得总行数

$highestColumn = $sheet->getHighestColumn(); // 取得总列数

$arr_result=array();

$strs=array();

for($j=2;$j<=$highestRow;$j++)

{

unset($arr_result);

unset($strs);

for($k='A';$k<= $highestColumn;$k++)

{

//读取单元格

$arr_result  .= $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().',';

}

$strs=explode(",",$arr_result);

//echo $strs[0];exit;

$sql="insert into `user`(username,score,class) values ('$strs[0]',$strs[1],$strs[2])";

echo $sql."
";

mysql_query("set names utf8");

$result=mysql_query($sql) or die("执行错误");

$insert_num=mysql_affected_rows();

if($insert_num>0){

$succ_result+=1;

}else{

$error_result+=1;

}

}

echo "插入成功".$succ_result."条数据!!!
";

echo "插入失败".$error_result."条数据!!!";

其中的phpexcel类库的路径根据自己的改,数据库配置你另外写也可以。insert into 语句根据你自己的情况自己写。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值