tp5.0操作phpexcel

8131 ワード

1.まずPHPExcel公式サイトでインストールパッケージのダウンロードアドレスをダウンロードします.https://github.com/PHPOffice/PHPExcel2.PHPExcelのclassesフォルダをPHPExcelと改名し、tp 5フレームのvendorファイルにコピーする.コントローラでPHPExcelを使うと、vendor(「PHPExcel.PHPExcel」)しか必要ありません.できます.4.例は以下の通りです://次の2つの関数をコントローラに入れます.直接使用すればpublic function lst(){//この方法は成功し、次のpublic static function excelPut(E x c e l,Excel,Excel,expTable Data){関数//composeを使用せずにphpexcelフォルダをvendor//sqlデータ$res=array(‘王城’,‘男’,‘18’,‘1997-03-13’,‘18948348924’),array(‘李飛虹’,‘男’,‘21’,‘1994-06-13’,‘159481389224’),array(‘王芸’,‘女’,‘18’,‘1997-03-13’,‘18648313924’),array(‘郭瑞’,‘男’,‘17’,‘1998-04-13’,‘15543248924’),array(‘李暁霞’,‘女’,‘19’,‘1996-06-13’,‘18748348924’));
    //    
    $Excel['fileName']="   ".date('Y m d -His',time());//or $xlsTitle
    $Excel['cellName']=['A','B','C','D','E','F','G','H','I','J'];
    //$Excel['H'] = ['A'=>5,'B'=>12,'C'=>12,'D'=>12,'E'=>12,'F'=>12,'G'=>12,'H'=>12,'I'=>12,'J'=>12];//      
    $Excel['V'] = ['1'=>40,'2'=>26];//      
    $Excel['sheetTitle']="    ";//   ,   
    //excel     
    $Excel['xlsCell']=[ [0,'ID'],
              [1,'  '],
              [2,'  '],
              [3,'  '],
              [4,'    ']
              ];
    //excel    
    $this->excelPut($Excel,$res);
  }


//   Excel
//1.     PHPExcel, classes      PHPExcel
//2.      classes   ( PHPExcel)   tp5    vendor   
//3.       vendor("PHPExcel.PHPExcel");

public static function excelPut( E x c e l , Excel, Excel,expTableData){ E x c e l [ ′ s h e e t T i t l e ′ ] = i c o n v ( ′ u t f − 8 ′ , ′ g b 231 2 ′ , Excel['sheetTitle']=iconv('utf-8', 'gb2312', Excel[′sheetTitle′]=iconv(′utf−8′,′gb2312′,Excel[‘sheetTitle’]); $cellName = $Excel[‘cellName’]; $xlsCell = $Excel[‘xlsCell’]; c e l l N u m = c o u n t ( cellNum = count( cellNum=count(xlsCell);//合計列数d a t a t a N u m=c o u n t(dataNum=count(dataNum=count(expTable Data);//計算データの合計行数vendor("PHPExcel.PHPExcel");objPHPExcel = new\PHPExcel(); $sheet0 = $objPHPExcel->getActiveSheet(0); $sheet0->setTitle(“Sheet1”);//sheet名の設定//表タイトルA 1 s h e t 0−>m e r g e C e l sの設定(′A 1:′.sheet 0−>mergeCells(′A 1:′.sheet 0−>mergeCells(′A 1:′.cellName[$cellNum−1].‘1’);//ヘッダーマージセルo b j P H P E x c e l−>s e t A c t i v e S h e e t I n d e x(0)−>s e t C e l V a l u e('A 1’,objPHPExcel->setActiveSheetIndex(0)->setCellValue('A 1',objPHPExcel−>setActiveSheetIndex(0)−>setCellValue('A 1',Excel['fileName']]);//o b j P H P E x c e l−s e t A c t t i v e S h e e e t I n d e x(0)//−s s e t C e l l V a l u e(′A 1′,objPHPExcel->setActiveSheetIndex(0)//->setCellValue(′A 1′,objPHPExcel−>setActiveSheetIndex(0)//−−>setCellValue(′A 1′,Excel['sheetTitle′].date(‘Y年月月d d d d Value(′Y年月月d d d d d)日',time();$sheet0->getStyle(‘A1’)->getFont()->setSize(20); s h e e t 0−>g e t S t y l e(’A 1’)−>g e t F o n t()−>s e t N a m e(’マイクロソフトヤコブ’);//行の高さと列の幅//横の水平幅i f(i s s e t(sheet 0->getStyle('A 1')->getFont()->setName('マイクロソフト・ブラック');行の高さと列の幅//横幅if(isset(sheet 0−>getStyle(’A 1’)−>getFont()−>setName(’マイクロソフト・ブラック’);//行の高さと列の幅//横水平幅if(isset(Excel[‘H’]){foreach($Excel[‘H’]as$key=>$value){s h e t 0−>g e t C o l u m n D i m e n s i o n(shet 0->getColumnDimension(shet 0->getColumnDimension(key)->setWidth(KaTeX parse error:Expected'EOF',got'}'at position 16:value);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;}̲ }//縦方向…Excel[‘V’]){foreach($Excel[‘V’]as$key=>$value){s h e t 0−>g e t R o w D i m e n s i o n(sheet 0−>getRowDimension(sheet 0−>getRowDimension(key)->setRowHeight($value);}//2行目:ヘッダーを太くして中央にし、色$sheet 0->getStyle(‘A 1’)->applyFromArray([‘font’=>[‘bold’=>false],‘alignment’=>[‘horizontal’=>PHPExcel_Style_Alignment::HORIZONTAL_CENTER,‘vertical’=>PHPExcel_Style_Alignment::VERTICAL_CENTER]);setcolor = s h e e t 0 − > g e t S t y l e ( "A 2 : ". sheet0->getStyle("A2:". sheet0−>getStyle("A2:".cellName[$cellNum-1].“2”)->getFill(); $setcolor->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);//$colors=[‘00a000’,‘53a500’,‘3385FF’,‘00a0d0’,‘D07E0E’,‘c000c0’,‘0C8080’,‘EFE4B0’];//合計色//s e l e c t c o l o r=selectcolor=selectcolor=colors[mt_rand(0,count($colors)-1)];//ランダムカラー//s e t c o l o r−>g e t S t a r t C o l o r()−>s e t R G B(setcolor->getStartColor()->setRGB(setcolor−>getStartColor()−>setRGB(selectcolor);s e t c o l o r − > g e t S t a r t C o l o r ( ) − > s e t R G B ( ′ A 6 A 6 A 6 ′ ) ;//テーブルデータに基づいてカラム名f o r(setcolor->getStartColor)->setRGB('A 6 A 6 A 6');//テーブルデータに基づいてカラム名for(setcolor−>getStartColor()−>setRGB(’A 6 A 6 A 6’);テーブルデータに基づいて列名for(i=0;is e t C e l V a l u e(objPHPExcel->setActiveSheetIndex(0)->setCellValue(objPHPExcel−setActiveSheetIndex(0)−>setActiveSheetIndex(0)−>setCellValue(cellName[i]$i]を設定する..‘2’,xl s C e l[xlsCell[xlsCell[i][1]) ->getStyle( c e l l N a m e [ cellName[ cellName[i].‘2’) ->applyFromArray([‘font’ => [‘bold’ => true],‘alignment’ => [‘horizontal’ =>\PHPExcel_Style_Alignment::HORIZONTAL_CENTER,‘vertical’=>\PHPExcel_Style_Alignment::VERTICAL_CENTER]]); }//body:レンダリングテーブルのデータ内容部分for(i=0;i=0;i=0;i=0;ig e t S t y l e(sheet 0->getStyle(sheeet 0->getStyle(cellName[j].(j].(j].(j].(i].(i+3)->>>>>>>getStyle(sheeet 0(shet 0->applyFromArray([‘alignment’=>[‘horizontal’ =>\PHPExcel_Style_Alignment::HORIZONTAL_CENTER,‘vertical’=>\PHPExcel_Style_Alignment::VERTICAL_CENTER]]); s h e e t 0 − > s e t C e l l V a l u e E x p l i c i t ( sheet0->setCellValueExplicit( sheet0−>setCellValueExplicit(cellName[ j ] . ( j].( j].(i+3), e x p T a b l e D a t a [ expTableData[ expTableData[i][ x l s C e l l [ xlsCell[ xlsCell[j][0]],\PHPExcel_Cell_DataType::TYPE_STRING); s h e e t 0 − > g e t S t y l e ( sheet0->getStyle( sheet0−>getStyle(cellName[ j ] . ( j].( j].(i+3))->getNumberFormat()->setFormatCode("@"); } }//フレームs h e e t 0−g e t S t y l e(′A 2:′.sheet 0−>getStyle(′A 2:′.sheet 0−′.sheet 0−>getStyle(′A 2:′.c ellName[c e l l l l N u m−1].(cellNum−1].(cellNum−1].(i+2)->>>applyFromArray(['borders'=>['allborders'=>['style'=>>PHPExcel_Style_Borde_Border:::BOBOBOBOBOBOBOBOBOBO: BOBOBOBOBOBOBOD: BOBOBOBOBOBOBOBOBOBOBOBOBOBOBORDER_THIN]);//s h e e e t 0−>s e t C e l l l V a l u e("A".(sheet 0->setCellValue("A".(sheet 0−>setCellValue("A".(dataNum+10)、"");///行ヘッダー(‘pragma:public’);ヘッダー('Content-type:application/vnd.ms-excel;charset=utf-8;name='.E x c e l['s h e e t t t t t t t t t t t t t t t t t t t t t t t t l e e e t t t t t t t t t 0−>s s s e e t t t t t t t s s s s s e t t t].’.x l s x’);h e a d e r ( "C o n t e n t − D i s p o s i t i o n : a t t a c h m e n t ; f i l e n a m e = ". Excel['sheetTitle'].'.xlsx"'); header("Content-Disposition:attachment;filename=". Excel[′sheetTitle′].′.xlsx"′);header("Content−Disposition:attachment;filename=".Excel[‘fileName’].".xlsx");//attachment新ウィンドウ印刷inline本ウィンドウ印刷KaTeX parse error:Expected'EOF',got'PHPExcel'at position 13:objWriter=̲P̲H̲P̲E̲x̲c̲e̲l̲_IOFactory::cre…objPHPExcel, ‘Excel2007’); $objWriter->save(‘php://output’); exit; }