为了账号安全,请及时绑定邮箱和手机立即绑定

PHPExcel如何将excel文件导入MySQL数据库?

请问将excel导入mysql数据库怎么导呢?/(ㄒoㄒ)/~~

而且只导入excel表的部分列,有些列的数据是不需要导入的,请问怎么做啊?大神请指教!

正在回答

3 回答

改为另外一个方法咯。

import.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($link);//实例化db类 连接数据库
require_once $dir."/PHPExcel/PHPExcel.php";//引入PHPExcel
require_once $dir."/PHPExcel/PHPExcel/IOFactory.php";
require_once $dir."/PHPExcel/PHPExcel/Reader/Excel5.php";
//stackoverflow 方法
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($uploadfile); 
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow(); 
$highestColumn = $objWorksheet->getHighestColumn(); 
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 
$rows = array();
for ($row = 2; $row <= $highestRow; ++$row) {
for ($col = 0; $col <= $highestColumnIndex; ++$col) {
$rows[$col] = mysql_real_escape_string($objWorksheet->getCellByColumnAndRow($col, $row)->getValue());
}
//print_r($rows);
mysql_query("set names utf8");
mysql_query("INSERT INTO `user`(username,class,score) 
VALUES ('$rows[0]',$rows[1],$rows[2])")or die("执行错误");
 $insert_num=mysql_affected_rows();
 if($insert_num>0){
$succ_result+=1;
}else{
$error_result+=1;
  }
}
echo "插入成功".$succ_result."条数据!!!<br>";
echo "插入失败".$error_result."条数据!!!";


0 回复 有任何疑惑可以回复我~

昨天还能插入两行,今天就只能插入一行,这是为什么呢/(ㄒoㄒ)/~~

0 回复 有任何疑惑可以回复我~

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

import.html代码

<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html"; charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0 , maximum-scale=1.0, user-scalable=0">
<title>Excel导入phpMyAdmin数据库</title>
<form name="frm1" enctype="multipart/form-data" action="import.php" method="post">
   <input name="filename" type="file" /><input name="submit" type="submit" value="导入数据库" />
</form>

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."<br/>"; 
	 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."条数据!!!<br>";
	echo "插入失败".$error_result."条数据!!!";

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

PHPExcel如何将excel文件导入MySQL数据库?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信