溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

基于ThinkPHP+uploadify+upload+PHPExcel如何實(shí)現(xiàn)無(wú)刷新導(dǎo)入數(shù)據(jù)

發(fā)布時(shí)間:2021-09-05 10:22:47 來(lái)源:億速云 閱讀:106 作者:小新 欄目:開(kāi)發(fā)技術(shù)

小編給大家分享一下基于ThinkPHP+uploadify+upload+PHPExcel如何實(shí)現(xiàn)無(wú)刷新導(dǎo)入數(shù)據(jù),希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

1.引入必要文件及上傳input

 <load file="__PUBLIC__/js/jquery-1.11.3.min.js" />
 <load file="__PUBLIC__/uploadify/jquery.uploadify.min.js" />
 <load file="__PUBLIC__/uploadify/uploadify.css" />
<input type="file" class="" id="student" name="student">

2.uploadify使用操作

<script>
 $(function(){
 //ThinkPHP上傳地址
 var upload = "{:U(MODULE_NAME.'/Student/upload')}";
 //ThinkPHP sessionID的提交變量
 //'VAR_SESSION_ID'=>'session_id',在ThinkPHP/Conf/convention.php中進(jìn)行配置,默認(rèn)關(guān)閉的需要開(kāi)啟
 var sid = '{:session_id()}';
 //導(dǎo)入數(shù)據(jù)地址
 var daoruUrl = "{:U(MODULE_NAME.'/Student/daoruHandle')}"
 //Amaze ui 模態(tài)框
 var modal = $('#my-modal-loading');
 //uploadify使用方法
 $('#student').uploadify({
  'swf'  : '__PUBLIC__/uploadify/uploadify.swf',
  'uploader' : upload,
  'buttonText' : '選擇文件...',
  'width':120,
  'height':30,
  'formData':{'session_id':sid},
  'fileTypeExts':'*.xls',
  //開(kāi)始上傳彈出模態(tài)框
  'onUploadStart' : function(file) {
  $('#alert-content').html('正在上傳文件');
   modal.modal();
  },
  //上傳成功關(guān)閉模態(tài)框,并用后臺(tái)函數(shù)導(dǎo)入數(shù)據(jù)
  'onUploadSuccess':function(file, data, response){
  $('#alert-content').html('正在導(dǎo)入數(shù)據(jù)');
  data = eval("("+data+")");
  $.ajax({
   type: 'POST',
   url: daoruUrl,
   data: {'file':data.file},
   success: function(retdata){
   modal.modal('close');
   if(retdata==1){
    alert('導(dǎo)入成功');
   }else{
    alert('導(dǎo)入失敗');
   }
   },
   dataType: 'json'
  });
  }
 });
 });
 </script>

3、ThinkPHP控制器上傳操作:備注需要引入U(xiǎn)pload.class.php空間

 function upload(){
  $config = array(
   'maxSize' => 3145728,
   'rootPath' => './Uploads/',
   'savePath' => '',
   'saveName' => array('uniqid',''),
   'exts'  => array('xls'),
   'autoSub' => true,
   'subName' => array('date','Ymd'),
   );
  $upload = new Upload($config);
  // 上傳文件 
  $info = $upload->upload();
  if(!$info) {// 上傳錯(cuò)誤提示錯(cuò)誤信息
   $this->error($upload->getError());
  }else{// 上傳成功 獲取上傳文件信息
   $file = $info['Filedata']['savepath'].$info['Filedata']['savename'];
  }
  //p($info);
  $data = array(
   'file'=>'./Uploads/'.$file,
   );
  echo json_encode($data);
 }

4.導(dǎo)入數(shù)據(jù)進(jìn)去mysql

//導(dǎo)入數(shù)據(jù)處理
 function daoruHandle(){
  $file = I('file');
  $excelData = excel_to_mysql($file);
  foreach($excelData['data'] as $row){
   $data = array(
    'xuehao'=>$row['xuehao'],
    'xingming'=>$row['xingming'],
    'xingbie'=>($row['xingbie']=='男')?1:0,
    'mima'=>md5($row['mima']),
    );
   M('student')->add($data);
  }
  echo 1;
 }

5.PHPExcel讀取Excel文件返回?cái)?shù)據(jù)函數(shù)

function excel_to_mysql($file){
  //導(dǎo)入PHPExcel第三方類庫(kù)
  //vendor('PHPExcel.PHPExcel');
  import('Classes.PHPExcel',COMMON_PATH,'.php');
  //實(shí)例化PHPExcel類,用于接收Excel文件
  $PHPExcel = new PHPExcel();
  //讀取Excel文件類實(shí)例化
  $PHPReader = new PHPExcel_reader_Excel5();
  //檢測(cè)Excel版本是否可讀
  if(!$PHPReader->canRead($file)){
   $PHPReader = new PHPExcel_Reader_Excel2007();
   if(!$PHPReader->canRead($file)) return array('error'=>1);//未知版本的Excel
  }
  //讀取Excel文件
  $PHPExcel = $PHPReader->load($file);
  //獲得Excel中表的數(shù)量
  $sheetCount = $PHPExcel->getSheetCount();
  //獲得第一張工作表
  $sheet=$PHPExcel->getSheet(0);
  //獲得表中最大數(shù)據(jù)列名
  $column = $sheet->getHighestColumn();
  //獲得表中最大數(shù)據(jù)行名
  $row = $sheet->getHighestRow();
  //循環(huán)獲得表中數(shù)據(jù)
  for($i=1;$i<=$row;$i++){
   $data[] = array(
    //通過(guò)工作表對(duì)象的getCell方法獲得單元格 getValue方法獲得該單元格數(shù)值
    'xuehao'=>$sheet->getCell('A'.$i)->getValue(),
    'xingming'=>$sheet->getCell('B'.$i)->getValue(),
    'xingbie'=>$sheet->getCell('C'.$i)->getValue(),
    'mima'=>$sheet->getCell('D'.$i)->getValue(),
   );
  }
  //釋放工作表對(duì)象
  unset($sheet);
  //釋放讀取Excel文件對(duì)象
  unset($PHPReader);
  //釋放Excel文件對(duì)象
  unset($PHPExcel);
  //返回?cái)?shù)據(jù)
  return array('error'=>0,'data'=>$data);
 }

看完了這篇文章,相信你對(duì)“基于ThinkPHP+uploadify+upload+PHPExcel如何實(shí)現(xiàn)無(wú)刷新導(dǎo)入數(shù)據(jù)”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI