laravel框架实现phpExcel导入导出,首先必须在laravel引入第三方类

转载 2016年10月10日 21:51:21

laravel框架实现phpExcel导入导出,首先必须在laravel引入第三方类

1、在app目录下创建一个新的文件夹,命名libs(可自定义)

2、(可选)考虑到后面可能会引用很多库,so,在libs下再创建一个phpExcel文件夹,把phpExcel类放入此文件夹下。

3、找到根目录下的composer.json文件

4、找到composer.json中定义的(看我备注)

           "autoload": {  

                 "classmap": [  

                      "database",  

                     "app/libs/phpExcel"  //加入phpExcel类的路径 

                  ],  

              "psr-4": {  

                    "App\\": "app/"  

               }

        },

5、安装composer,windows下可以在百度上下载

6、运行命令行进入项目根目录,执行“composer dumpautoload”

7、在控制器中use PHPExcel

8、在方法中实例化phpExccel对象,打印该对象看phpExcel类是否引入成功。

     $objPHPExcel = new PHPExcel();

     print_r($objPHPExcel);

==========以上是引入phpExcel类步骤(其它第三方类与此类似)============

[html] view plain copy
  1. <span style="font-size:18px;">以下开始excel导入导出</span>  


//导出     控制器中use PHPExcel;  use IOFactory;

[php] view plain copy
  1. publicfunction phpexcel()  
  2. {  
  3.   
  4.        //$objPHPExcel = new PHPExcel();  
  5.   
  6.        //print_r($objPHPExcel);  
  7.   
  8.         $query =DB::table('goods')->get();  
  9.   
  10.         //$query =$this ->db->query($sql);  
  11.   
  12.        //print_r($query);  
  13.   
  14.         if(!$query)return false;  
  15.   
  16.         //StartingthePHPExcellibrary  
  17.   
  18.         //加载PHPExcel类  
  19.   
  20.        //$this->load->library('PHPExcel');  
  21.   
  22.         //$this->load ->library('PHPExcel/IOFactory');  
  23.   
  24.         $objPHPExcelnew PHPExcel();  
  25.   
  26.         include_once('../app/libs/phpexcel/phpexcel/IOFactory.php');  
  27.   
  28.         $objPHPExcel->getProperties()-> setTitle("export") ->setDescription("none");  
  29.   
  30.         $objPHPExcel-> setActiveSheetIndex(0);  
  31.   
  32.         //Fieldnamesinthefirstrow  
  33.   
  34.         $fields = DB::select("select COLUMN_NAME from information_schema.COLUMNS where  
  35.   
  36.            table_name = 'goods';");  
  37.   
  38.        //print_r($fields);die;  
  39.   
  40.         $col = 0;  
  41.   
  42.        foreach($fields as $field){  
  43.   
  44.             $field =$field['COLUMN_NAME'];  
  45.   
  46.             $objPHPExcel-> getActiveSheet() -> setCellValueByColumnAndRow($col, 1,$field);  
  47.   
  48.             $col++;  
  49.   
  50.         }  
  51.   
  52.        // die;  
  53.        //Fetchingthetabledata  
  54.   
  55.        $row = 2;  
  56.   
  57.         foreach($query as $data)  
  58.         {  
  59.   
  60.              $col =0;  
  61.   
  62.              foreach($fields $field)  
  63.   
  64.              {  
  65.   
  66.                  //print_r($data);  
  67.   
  68.                  $field =$field['COLUMN_NAME'];  
  69.   
  70.                  $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col,$row,!empty($data["$field"])?$data["$field"]:'');  
  71.   
  72.                  $col++;  
  73.   
  74.              }  
  75.   
  76.             $row++;  
  77.   
  78.         }  
  79.   
  80.         //die;  
  81.   
  82.         $objPHPExcel-> setActiveSheetIndex(0);  
  83.   
  84.         $objWriter =IOFactory :: createWriter($objPHPExcel'Excel5');  
  85.   
  86.         //Sendingheaderstoforcetheusertodownloadthefile  
  87.   
  88.         header('Content-Type:application/vnd.ms-excel');  
  89.   
  90.        //header('Content-Disposition:attachment;filename="Products_' .date('dMy') . '.xls"');  
  91.   
  92.         header('Content-Disposition:attachment;filename="Brand_' .date('Y-m-d') . '.xls"');  
  93.   
  94.         header('Cache-Control:max-age=0');  
  95.   
  96.         $objWriter-> save('php://output');  
  97.   
  98.     }  


 

//导入     控制器中use IOFactory;   use PHPExcel_Cell;

[php] view plain copy
  1. public functionru(Request $request){  
  2.        $tmp_file =$_FILES ['file_stu'] ['tmp_name'];  
  3.   
  4.        $file_types =explode ( "."$_FILES ['file_stu'] ['name'] );  
  5.   
  6.        $file_type =$file_types [count ( $file_types ) - 1];  
  7.   
  8.        /*判别是不是.xls文件,判别是不是excel文件*/  
  9.   
  10.        if (strtolower$file_type ) != "xls"){  
  11.   
  12.           $this->error ( '不是Excel文件,重新上传' );  
  13.   
  14.        }  
  15.   
  16.        $savePath ="./excel/";  
  17.   
  18.        /*以时间来命名上传的文件*/  
  19.   
  20.        $str =date('Ymdhis');  
  21.   
  22.        $file_name =$str . "." . $file_type;  
  23.   
  24.        //echo$file_name;die;  
  25.   
  26.        $request->file('file_stu')->move($savePath$file_name);  
  27.   
  28.        /*是否上传成功*/  
  29.   
  30.        /*if(!copy($tmp_file,$savePath.$file_name)){ 
  31.  
  32.           $this->error ( '上传失败' ); 
  33.  
  34.        }*/  
  35.   
  36.        //要获得新的文件路径+名字  
  37.   
  38.        $fullpath =$savePath.$file_name;  
  39.   
  40.        //echo$fullpath;die;  
  41.   
  42.        $re =$this->read($fullpath,'utf-8');  
  43.   
  44.        //print_r($re);die;  
  45.   
  46.        for($i=1;$i<count($re);$i++){  
  47.   
  48.           //print_r($re);  
  49.   
  50.           //echo$re[$i][1];  
  51.   
  52.           $adds =DB::table('goods')->insert(['gname' => $re[$i][1], 'gprice' =>$re[$i][2]]);  
  53.   
  54.        }  
  55.   
  56.        //die;  
  57.   
  58.        if($adds){  
  59.   
  60.             echo"<script>alert('导入成功');location.href='daoru'</script>";  
  61.   
  62.         }else{  
  63.   
  64.             echo"<script>alert('导入失败');location.href='daoru'</script>";  
  65.   
  66.         }  
  67.   
  68.    
  69.   
  70.     }  
  71.   
  72. public function read($filename,$encode='utf-8')  
  73. {  
  74.   
  75.         include_once('../app/libs/phpexcel/phpexcel/IOFactory.php');  
  76.   
  77.         //$this->load ->library('PHPExcel/IOFactory');  
  78.   
  79.         $objReader =IOFactory::createReader('Excel5');  
  80.   
  81.         $objReader->setReadDataOnly(true);  
  82.   
  83.         $objPHPExcel$objReader->load($filename);  
  84.   
  85.         $objWorksheet$objPHPExcel->getActiveSheet();  
  86.   
  87.         $highestRow =$objWorksheet->getHighestRow();  
  88.   
  89.         //echo$highestRow;die;  
  90.   
  91.         $highestColumn = $objWorksheet->getHighestColumn();  
  92.   
  93.         //echo$highestColumn;die;  
  94.   
  95.         $highestColumnIndex =PHPExcel_Cell::columnIndexFromString($highestColumn);  
  96.   
  97.         $excelData =array();  
  98.   
  99.         for($row = 1;$row <= $highestRow$row++) {  
  100.   
  101.             for ($col= 0; $col < $highestColumnIndex$col++) {  
  102.   
  103.                    $excelData[$row][]=(string)$objWorksheet->getCellByColumnAndRow($col,$row)->getValue();  
  104.   
  105.              }  
  106.   
  107.         }  
  108.   
  109.         return$excelData;  
  110.   
  111. }  
举报

相关文章推荐

PHPExcel中导出数据报错!个人遇见的问题,用的laravel框架

用PHPExcel导出数据都是直接输出内容,平时没有出现什么问题。今天导出突然出现,导出的时候PHPExcel抛出异常: 用的laravel框架 C361 -> Formula Error: An...

laravel5.4 导入导出excel /.xls

laravel 导入导出有很多 但是你发现等你根据conposer安装excal的时候你发现 他总是不依不饶的提示你: 安装失败  这就是laravel5.4的高明之处了, 下面让我们来看看吧! 1....

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Laravel导出excel教程

基础首先,在Controller中使用Excel::create('Filename'); ,该语句的意思大致是建立一个名字为Filename的excel表的对象。 创建的过程中可以使用回调函数,如...

[汇总信息] Laravel 上使用 phpexcel的两种方式

文章采集与网上 方式1。使用原生的phpexcel , http://blog.csdn.net/CSwfe/article/details/52748046?locationNum=1 ...

Laravel 加载PHPEXCEL

Laravel 4 "maatwebsite/excel": "~1.3" Laravel 5 "maatwebsite/excel": "~2.0" "require-dev":...

Laravel如何引用第三方(自定义)库

想做一个网页抓取的功能,底层使用php的laravel框架。 这里使用phpQuery库来实现网页抓取,这里不做介绍。 需要了解的可以百度,或者等我填坑。 下载最新版本可以前往https://code...
  • IROYCN
  • IROYCN
  • 2015-07-24 10:23
  • 13401

阿里大鱼 短信使用

下载SDK,解压引入Autoload.php、TopSdk.php及aliyun和top两个文件夹。 我引入的位置是 APP_PATH/Common/Lib/Alidayu/,不动tp文件我觉得好些...

Laravel实现第三方登录

安装composer 1.    下载网站 :http://docs.phpcomposer.com/ 2.    下载 composer 3.    安装 ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)