国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php利用PHPExcel類導出導入Excel用法

2024-05-04 21:48:34
字體:
來源:轉載
供稿:網友

PHPExcel類是php一個excel表格處理插件了,下面我來給大家介紹利用PHPExcel類來導入與導出excel表格的應用方法,有需要了解的朋友不防參考參考,PHPExcel自己百度下載這里不介紹了.

導出Excel用法,代碼如下:

  1. //設置環境變量(新增PHPExcel) 
  2.  
  3. set_include_path('.'. PATH_SEPARATOR . Yii::app()->basePath.'/lib/PHPExcel' . PATH_SEPARATOR . 
  4.  
  5. get_include_path());   
  6. //注:在yii中,也可以直接Yii::import(“application.lib.PHPExcel.*”);   
  7.    
  8. //引入PHPExcel相關文件   
  9. require_once "PHPExcel.php";   
  10. require_once 'PHPExcel/IOFactory.php';   
  11. require_once 'PHPExcel/Writer/Excel5.php';  
  12.  
  13. //把要導出的內容放到表格,新建    
  14.  
  15. $resultPHPExcel = new PHPExcel(); 
  16.  
  17. //設置參數 設值    
  18.  
  19. $resultPHPExcel->getActiveSheet()->setCellValue('A1''季度');  
  20. $resultPHPExcel->getActiveSheet()->setCellValue('B1''名稱');  
  21. $resultPHPExcel->getActiveSheet()->setCellValue('C1''數量');  
  22. $i = 2; //開源代碼Vevb.com 
  23. foreach($data as $item){  
  24. $resultPHPExcel->getActiveSheet()->setCellValue('A' . $i$item['quarter']);  
  25. $resultPHPExcel->getActiveSheet()->setCellValue('B' . $i$item['name']);  
  26. $resultPHPExcel->getActiveSheet()->setCellValue('C' . $i$item['number']);  
  27. $i ++;  

設置導出參數,代碼如下:

  1. //設置導出文件名  
  2.  
  3. $outputFileName = 'total.xls';  
  4.  
  5. $xlsWriter = new PHPExcel_Writer_Excel5($resultPHPExcel);  
  6.  
  7. //ob_start(); ob_flush();  
  8.  
  9. header("Content-Type: application/force-download");  
  10.  
  11. header("Content-Type: application/octet-stream");  
  12.  
  13. header("Content-Type: application/download");  
  14.  
  15. header('Content-Disposition:inline;filename="'.$outputFileName.'"');  
  16.  
  17. header("Content-Transfer-Encoding: binary");  
  18.  
  19. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");  
  20.  
  21. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");  
  22.  
  23. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");  
  24.  
  25. header("Pragma: no-cache");  
  26.  
  27. $xlsWriter->save( "php://output" ); 

輸出有錯,默認$xlsWriter->save( "php://output" );可能因為緩存不夠大,而顯示不完整,所以做個中轉,代碼如下:

  1. $finalFileName = (Yii::app()->basePath.'/runtime/'.time().'.xls';  
  2.  
  3. $xlsWriter->save($finalFileName);  
  4.  
  5. echo file_get_contents($finalFileName);  
  6.  
  7. //file_get_contents() 函數把整個文件讀入一個字符串中。和 file() 一樣,不同的是 file_get_contents() 把文件讀入一個字符串。 

導入Excel用法,代碼如下:

  1. <?php 
  2. if($_POST['leadExcel'] == "true"
  3.     $filename = $_FILES['inputExcel']['name']; 
  4.     $tmp_name = $_FILES['inputExcel']['tmp_name']; 
  5.     $msg = uploadFile($filename,$tmp_name); 
  6.     echo $msg
  7.  
  8. //導入Excel文件 
  9. function uploadFile($file,$filetempname)  
  10.     //自己設置的上傳文件存放路徑 
  11.     $filePath = 'upFile/'
  12.     $str = "";    
  13.     //下面的路徑按照你PHPExcel的路徑來修改 
  14.     require_once '../PHPExcel/PHPExcel.php'
  15.     require_once '../PHPExcel/PHPExcel/IOFactory.php'
  16.     require_once '../PHPExcel/PHPExcel/Reader/Excel5.php'
  17.  
  18.     //注意設置時區 
  19.     $time=date("y-m-d-H-i-s");//去當前上傳的時間  
  20.     //獲取上傳文件的擴展名 
  21.     $extend=strrchr ($file,'.'); 
  22.     //上傳后的文件名 
  23.     $name=$time.$extend
  24.     $uploadfile=$filePath.$name;//上傳后的文件名地址  
  25.     //move_uploaded_file() 函數將上傳的文件移動到新位置。若成功,則返回 true,否則返回 false。 
  26.     $result=move_uploaded_file($filetempname,$uploadfile);//假如上傳到當前目錄下 
  27.     //echo $result; 
  28.     if($result//如果上傳文件成功,就執行導入excel操作 
  29.     { 
  30.         include "conn.php"
  31.         $objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format  
  32.         $objPHPExcel = $objReader->load($uploadfile);  
  33.         $sheet = $objPHPExcel->getSheet(0);  
  34.         $highestRow = $sheet->getHighestRow();           //取得總行數  
  35.         $highestColumn = $sheet->getHighestColumn(); //取得總列數 
  36.          
  37.         /* 第一種方法 
  38.  
  39.         //循環讀取excel文件,讀取一條,插入一條 
  40.         for($j=1;$j<=$highestRow;$j++)                        //從第一行開始讀取數據 
  41.         {  
  42.             for($k='A';$k<=$highestColumn;$k++)            //從A列讀取數據 
  43.             {  
  44.                 // 
  45.                 這種方法簡單,但有不妥,以'/'合并為數組,再分割/為字段值插入到數據庫 
  46.                 實測在excel中,如果某單元格的值包含了/導入的數據會為空         
  47.                 // 
  48.                 $str .=$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().'/';//讀取單元格 
  49.             }  
  50.             //echo $str; die(); 
  51.             //explode:函數把字符串分割為數組。 
  52.             $strs = explode("/",$str); 
  53.             $sql = "INSERT INTO te(`1`, `2`, `3`, `4`, `5`) VALUES ( 
  54.             '{$strs[0]}', 
  55.             '{$strs[1]}', 
  56.             '{$strs[2]}', 
  57.             '{$strs[3]}', 
  58.             '{$strs[4]}')"; 
  59.             //die($sql); 
  60.             if(!mysql_query($sql)) 
  61.             { 
  62.                 return false; 
  63.                 echo 'sql語句有誤'; 
  64.             } 
  65.             $str = ""; 
  66.         }   
  67.         unlink($uploadfile); //刪除上傳的excel文件 
  68.         $msg = "導入成功!"; 
  69.         */ 
  70.  
  71.         /* 第二種方法*/ 
  72.         $objWorksheet = $objPHPExcel->getActiveSheet(); 
  73.         $highestRow = $objWorksheet->getHighestRow();  
  74.         echo 'highestRow='.$highestRow
  75.         echo "<br>"
  76.         $highestColumn = $objWorksheet->getHighestColumn(); 
  77.         $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);//總列數 
  78.         echo 'highestColumnIndex='.$highestColumnIndex
  79.         echo "<br>"
  80.         $headtitle=array();  
  81.         for ($row = 1;$row <= $highestRow;$row++)  
  82.         { 
  83.             $strs=array(); 
  84.             //注意highestColumnIndex的列數索引從0開始 
  85.             for ($col = 0;$col < $highestColumnIndex;$col++) 
  86.             { 
  87.                 $strs[$col] =$objWorksheet->getCellByColumnAndRow($col$row)->getValue(); 
  88.             }     
  89.             $sql = "INSERT INTO te(`1`, `2`, `3`, `4`, `5`) VALUES ( 
  90.             '{$strs[0]}'
  91.             '{$strs[1]}'
  92.             '{$strs[2]}'
  93.             '{$strs[3]}'
  94.             '{$strs[4]}')"; 
  95.             //die($sql); 
  96.             if(!mysql_query($sql)) 
  97.             { 
  98.                 return false; 
  99.                 echo 'sql語句有誤'
  100.             } 
  101.         } 
  102.     } 
  103.     else 
  104.     { 
  105.        $msg = "導入失敗!"
  106.     }  
  107.     return $msg
  108. ?> 

HTML網頁代碼,代碼如下:

  1. <form action="upload.php" method="post" enctype="multipart/form-data"> 
  2.     <input type="hidden" name="leadExcel" value="true"> 
  3.     <table align="center" width="90%" border="0"> 
  4.     <tr> 
  5.        <td> 
  6.         <input type="file" name="inputExcel"><input type="submit" value="導入數據"> 
  7.        </td> 
  8.     </tr> 
  9.     </table> 
  10. </form> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玛纳斯县| 长寿区| 奈曼旗| 贵定县| 金门县| 延川县| 房山区| 山西省| 惠东县| 东宁县| 甘孜| 锡林浩特市| 修文县| 崇信县| 泰州市| 阿勒泰市| 香河县| 行唐县| 宁远县| 深水埗区| 界首市| 玉树县| 治多县| 汕头市| 麦盖提县| 垫江县| 天津市| 河东区| 安图县| 濮阳县| 邻水| 福贡县| 泊头市| 碌曲县| 蓬溪县| 灌云县| 西乌珠穆沁旗| 海淀区| 罗源县| 扶绥县| 德令哈市|