>  기사  >  백엔드 개발  >  PHPExcel을 사용하여 데이터베이스에 PHP 일괄 업로드

PHPExcel을 사용하여 데이터베이스에 PHP 일괄 업로드

陈政宽~
陈政宽~원래의
2017-06-28 13:38:331174검색

다음 편집기에서는 PHP를 사용하여 PHPExcel을 사용하여 데이터베이스에 배치를 업로드하는 방법에 대한 기사를 제공합니다. 에디터가 꽤 좋다고 생각해서 지금 공유해서 참고용으로 올려보겠습니다. 편집기를 따라 살펴보겠습니다

이 예제에서는 execel2003의 .xls 파일만 사용합니다. 다른 버전을 사용하는 경우 "Execel 97-2003 통합 문서(*.xls)" 형식으로 저장할 수 있습니다. .xls 파일 형식입니다.

기능 설명: Excel2003 형식의 xls 파일만 업로드할 수 있으며 크기는 5M를 초과할 수 없습니다. 다운로드 가능한 예제 템플릿은 데이터 추가 후 업로드 가능합니다!

Front-end test.php 페이지

<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>
<meta charset="utf-8">
<body>
<form enctype="multipart/form-data" action="./Process.php" method="post">
  <table>
    <tr><td align="center" colspan="2"><font style="font-size: 40px; font-family: 华文彩云;" >上传表格</font></td></tr>
    <tr><td>请先<a href="./sample/sample01.xls" rel="external nofollow" >下载excel例子模板</a>编辑后上传文件</td></tr>
     <tr>
    <td>请选择你要上传的文件</td>
    <td><input type="file" name="myfile"></td>
    </tr>
    <tr><td><input type="submit" value="上传文件" /></td></tr>
  </table>
</form>
</body>
</html>

실행 결과:

Backend Process.php 페이지

<?php
header("Content-type:text/html;charset=utf-8");

//链接数据库
$link = @mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;&#39;) or die(&#39;连接数据库失败&#39;);
mysql_select_db(&#39;test&#39;,$link);
mysql_query(&#39;set names utf8&#39;);

function upExecel(){

//判断是否选择了要上传的表格
if (empty($_POST[&#39;myfile&#39;])) {
  echo "<script>alert(您未选择表格);history.go(-1);</script>";
}

//获取表格的大小,限制上传表格的大小5M
$file_size = $_FILES[&#39;myfile&#39;][&#39;size&#39;];
if ($file_size>5*1024*1024) {
echo "<script>alert(&#39;上传失败,上传的表格不能超过5M的大小&#39;);history.go(-1);</script>";
  exit();
}

//限制上传表格类型
$file_type = $_FILES[&#39;myfile&#39;][&#39;type&#39;];
//application/vnd.ms-excel 为xls文件类型
if ($file_type!=&#39;application/vnd.ms-excel&#39;) {
  echo "<script>alert(&#39;上传失败,只能上传excel2003的xls格式!&#39;);history.go(-1)</script>";
 exit();
}

//判断表格是否上传成功
if (is_uploaded_file($_FILES[&#39;myfile&#39;][&#39;tmp_name&#39;])) {
  require_once &#39;PHPExcel.php&#39;;
  require_once &#39;PHPExcel/IOFactory.php&#39;;
  require_once &#39;PHPExcel/Reader/Excel5.php&#39;;
  //以上三步加载phpExcel的类

  $objReader = PHPExcel_IOFactory::createReader(&#39;Excel5&#39;);//use excel2007 for 2007 format 
  //接收存在缓存中的excel表格
  $filename = $_FILES[&#39;myfile&#39;][&#39;tmp_name&#39;];
  $objPHPExcel = $objReader->load($filename); //$filename可以是上传的表格,或者是指定的表格
  $sheet = $objPHPExcel->getSheet(0); 
  $highestRow = $sheet->getHighestRow(); // 取得总行数 
  // $highestColumn = $sheet->getHighestColumn(); // 取得总列数
  
  //循环读取excel表格,读取一条,插入一条
  //j表示从哪一行开始读取 从第二行开始读取,因为第一行是标题不保存
  //$a表示列号
  for($j=2;$j<=$highestRow;$j++) 
  {
    $a = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();//获取A(业主名字)列的值
    $b = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();//获取B(密码)列的值
    $c = $objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue();//获取C(手机号)列的值
    $d = $objPHPExcel->getActiveSheet()->getCell("D".$j)->getValue();//获取D(地址)列的值

    //null 为主键id,自增可用null表示自动添加
    $sql = "INSERT INTO house VALUES(null,&#39;$a&#39;,&#39;$b&#39;,&#39;$c&#39;,&#39;$d&#39;)";
    // echo "$sql";
    // exit();
    $res = mysql_query($sql);
    if ($res) {
      echo "<script>alert(&#39;添加成功!&#39;);window.location.href=&#39;./test.php&#39;;</script>";
      
    }else{
      echo "<script>alert(&#39;添加失败!&#39;);window.location.href=&#39;./test.php&#39;;</script>";
      exit();
    }
  }
}
}

//调用
upExecel();
?>

효과: 선택하지 않은 경우 업로드된 파일은 "선택된 테이블이 없습니다"라는 메시지가 표시됩니다. 테이블 파일이 5M를 초과하면 업로드된 파일 형식이 xls가 아닌 경우 메시지가 표시됩니다!

PHPExcel을 사용하여 데이터베이스에 일괄 업로드를 구현하는 위의 PHP 방법은 모두 편집자가 공유한 내용이므로 참조할 수 있기를 바라며, Script Home을 지원해 주시길 바랍니다.

위 내용은 PHPExcel을 사용하여 데이터베이스에 PHP 일괄 업로드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.