cari
Rumahphp教程php手册Yii框架中使用PHPExcel导出Excel文件

 最近在研究PHP的Yii框架,很喜欢,碰到导出Excel的问题,研究了一下,就有了下面的方法:

 

1、首先在config\main.php中添加对PHPExcel的引用,我的方式是这样:

1 2 3 4 5 6 7 8 // autoloading model and component classes     'import'=>array(                         'application.models.*',         'application.components.*',         'application.extensions.phpexcel.*',                  ),

另外也有人用components 这个配置,但是我的有问题,所以就用上面的方法。

 

2、按照下面的代码修改PHPExcel代码目录里的Autoloader.php文件:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public static function Register() {         $functions = spl_autoload_functions();             foreach $functions as  $function)                 spl_autoload_unregister($function);             $functions array_merge(array(array('PHPExcel_Autoloader','Load')),$functions);             foreach $functions as $function)                 $x = spl_autoload_register($function);             return $x;          }    //    function Register()

上面的函数中,注释掉的是原有的代码。

 

3、下面的代码是输出Excel,以及一些常用的属性设置,在你的controller中:

     

    public  function actionExport()     {         $objectPHPExcel new PHPExcel();         $objectPHPExcel->setActiveSheetIndex(0);              $page_size = 52;         //数据的取出         $model = Yii::app()->session['printdata'];              $dataProvider $model->search();              $dataProvider->setPagination(false);         $data $dataProvider->getData();         $count $dataProvider->getTotalItemCount();         //总页数的算出         $page_count = (int)($count/$page_size) +1;         $current_page = 0;              $n = 0;         foreach $data as $product )         {             if $n $page_size === 0 )             {                 $current_page $current_page +1;                      //报表头的输出                 $objectPHPExcel->getActiveSheet()->mergeCells('B1:G1');                 $objectPHPExcel->getActiveSheet()->setCellValue('B1','产品信息表');                      $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('B2','产品信息表');                 $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('B2','产品信息表');                 $objectPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getFont()->setSize(24);                 $objectPHPExcel->setActiveSheetIndex(0)->getStyle('B1')                     ->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);                      $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('B2','日期:'.date("Y年m月j日"));                 $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('G2','第'.$current_page.'/'.$page_count.'页');                 $objectPHPExcel->setActiveSheetIndex(0)->getStyle('G2')                     ->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);                                      //表格头的输出                 $objectPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(5);                 $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('B3','编号');                 $objectPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(6.5);                 $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('C3','名称');                 $objectPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(17);                 $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('D3','生产厂家');                 $objectPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(22);                 $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('E3','单位');                 $objectPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);                 $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('F3','单价');                 $objectPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15);                 $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('G3','在库数');                 $objectPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(15);                                      //设置居中                 $objectPHPExcel->getActiveSheet()->getStyle('B3:G3')                     ->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);                      //设置边框                 $objectPHPExcel->getActiveSheet()->getStyle('B3:G3' )                     ->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);                 $objectPHPExcel->getActiveSheet()->getStyle('B3:G3' )                     ->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);                 $objectPHPExcel->getActiveSheet()->getStyle('B3:G3' )                     ->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);                 $objectPHPExcel->getActiveSheet()->getStyle('B3:G3' )                     ->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);                 $objectPHPExcel->getActiveSheet()->getStyle('B3:G3' )                     ->getBorders()->getVertical()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);                      //设置颜色                 $objectPHPExcel->getActiveSheet()->getStyle('B3:G3')->getFill()                     ->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('FF66CCCC');                                  }             //明细的输出             $objectPHPExcel->getActiveSheet()->setCellValue('B'.($n+4) ,$product->id);             $objectPHPExcel->getActiveSheet()->setCellValue('C'.($n+4) ,$product->product_name);             $objectPHPExcel->getActiveSheet()->setCellValue('D'.($n+4) ,$product->product_agent->name);             $objectPHPExcel->getActiveSheet()->setCellValue('E'.($n+4) ,$product->unit);             $objectPHPExcel->getActiveSheet()->setCellValue('F'.($n+4) ,$product->unit_price);             $objectPHPExcel->getActiveSheet()->setCellValue('G'.($n+4) ,$product->library_count);             //设置边框             $currentRowNum $n+4;             $objectPHPExcel->getActiveSheet()->getStyle('B'.($n+4).':G'.$currentRowNum )                     ->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);             $objectPHPExcel->getActiveSheet()->getStyle('B'.($n+4).':G'.$currentRowNum )                     ->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);             $objectPHPExcel->getActiveSheet()->getStyle('B'.($n+4).':G'.$currentRowNum )                     ->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);             $objectPHPExcel->getActiveSheet()->getStyle('B'.($n+4).':G'.$currentRowNum )                     ->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);             $objectPHPExcel->getActiveSheet()->getStyle('B'.($n+4).':G'.$currentRowNum )                     ->getBorders()->getVertical()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);             $n $n +1;             }              //设置分页显示         //$objectPHPExcel->getActiveSheet()->setBreak( 'I55' , PHPExcel_Worksheet::BREAK_ROW );         //$objectPHPExcel->getActiveSheet()->setBreak( 'I10' , PHPExcel_Worksheet::BREAK_COLUMN );         $objectPHPE
Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa