TP5引用PHPExcel實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能

從php中文網(wǎng)下載phpexcel

PHPExcel

將下載好的PHPExcel文件夾跟PHPExcel放置在框架中的Vendor目錄下,注意目錄的結(jié)構(gòu),按照我的代碼來(lái)基本上直接引用就能使用

TP5引用PHPExcel實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能

前端代碼

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

 ? ? ??<div> ????Advanced?Tables? ???<a>導(dǎo)出</a>? ???<form>? ????<input>? ????<input>? ???</form>? ??</div> ? 

導(dǎo)出功能控制器的代碼

$list?=?Db::table('product')-&gt;select(); ????????vendor("PHPExcel176.PHPExcel"); ????????$objPHPExcel?=?new?PHPExcel(); ????????$objPHPExcel-&gt;getProperties()-&gt;setCreator("ctos") ????????????-&gt;setLastModifiedBy("ctos") ????????????-&gt;setTitle("Office?2007?XLSX?Test?Document") ????????????-&gt;setSubject("Office?2007?XLSX?Test?Document") ????????????-&gt;setDescription("Test?document?for?Office?2007?XLSX,?generated?using?PHP?classes.") ????????????-&gt;setKeywords("office?2007?openxml?php") ????????????-&gt;setCategory("Test?result?file"); ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getColumnDimension('A')-&gt;setWidth(8); ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getColumnDimension('B')-&gt;setWidth(20); ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getColumnDimension('C')-&gt;setWidth(10); ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getColumnDimension('D')-&gt;setWidth(10); ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getColumnDimension('E')-&gt;setWidth(50); ????????//設(shè)置行高度 ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getRowDimension('1')-&gt;setRowHeight(22); ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getRowDimension('2')-&gt;setRowHeight(20); ????????//set?font?size?bold ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getDefaultStyle()-&gt;getFont()-&gt;setSize(10); ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('A2:E2')-&gt;getFont()-&gt;setBold(true); ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('A2:E2')-&gt;getAlignment()-&gt;setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('A2:E2')-&gt;getBorders()-&gt;getAllBorders()-&gt;setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); ????????//設(shè)置水平居中 ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('A1')-&gt;getAlignment()-&gt;setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT); ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('A')-&gt;getAlignment()-&gt;setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('B')-&gt;getAlignment()-&gt;setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('D')-&gt;getAlignment()-&gt;setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); ????????$objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('E')-&gt;getAlignment()-&gt;setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); ????????//合并cell ????????$objPHPExcel-&gt;getActiveSheet()-&gt;mergeCells('A1:J1'); ????????//?set?table?header?content ????????$objPHPExcel-&gt;setActiveSheetIndex(0) ????????????-&gt;setCellValue('A1',?'訂單數(shù)據(jù)匯總??時(shí)間:'.date('Y-m-d?H:i:s')) ????????????-&gt;setCellValue('A2',?'訂單ID') ????????????-&gt;setCellValue('B2',?'商品名稱') ????????????-&gt;setCellValue('C2',?'價(jià)格') ????????????-&gt;setCellValue('D2',?'庫(kù)存') ????????????-&gt;setCellValue('E2',?'圖片'); ????????//?Miscellaneous?glyphs,?UTF-8 ????????for($i=0;$i<count>getActiveSheet(0)-&gt;setCellValue('A'.($i+3),?$list[$i]['id']); ????????????$objPHPExcel-&gt;getActiveSheet(0)-&gt;setCellValue('B'.($i+3),?$list[$i]['name']); ????????????$objPHPExcel-&gt;getActiveSheet(0)-&gt;setCellValue('C'.($i+3),?$list[$i]['price']); ????????????$objPHPExcel-&gt;getActiveSheet(0)-&gt;setCellValue('D'.($i+3),?$list[$i]['stock']); ????????????$objPHPExcel-&gt;getActiveSheet(0)-&gt;setCellValue('E'.($i+3),?$list[$i]['main_img_url']); ????????????//$objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('A'.($i+3).':J'.($i+3))-&gt;getAlignment()-&gt;setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); ????????????//$objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('A'.($i+3).':J'.($i+3))-&gt;getBorders()-&gt;getAllBorders()-&gt;setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); ????????????$objPHPExcel-&gt;getActiveSheet()-&gt;getRowDimension($i+3)-&gt;setRowHeight(16); ????????} ????????//??sheet命名 ????????$objPHPExcel-&gt;getActiveSheet()-&gt;setTitle('訂單匯總表'); ????????//?Set?active?sheet?index?to?the?first?sheet,?so?Excel?opens?this?as?the?first?sheet ????????$objPHPExcel-&gt;setActiveSheetIndex(0); ????????//?excel頭參數(shù) ????????header('Content-Type:?application/vnd.ms-excel'); ????????header('Content-Disposition:?attachment;filename="商品表('.date('Ymd-His').').xls"');??//日期為文件名后綴 ????????header('Cache-Control:?max-age=0'); ????????$objWriter?=?PHPExcel_IOFactory::createWriter($objPHPExcel,?'Excel5');??//excel5為xls格式,excel2007為xlsx格式 ????????$objWriter-&gt;save('php://output');</count>

TP5引用PHPExcel實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能

導(dǎo)入功能控制器的代碼

public?function?daoru(){ ????????$file?=?$_FILES['upload']['tmp_name'][0]; ????????$data?=?$this-&gt;import_excel($file); ????????var_dump($data); ????} ????private?function?import_excel($file){ ????????//?判斷文件是什么格式 ????????$type?=?pathinfo($file); ????????$type?=?strtolower($type["extension"]); ????????$type=$type==='csv'???$type?:?'Excel5'; ????????ini_set('max_execution_time',?'0'); ????????Vendor('PHPExcel176.PHPExcel'); ????????//?判斷使用哪種格式 ????????$objReader?=?PHPExcel_IOFactory::createReader($type); ????????$objPHPExcel?=?$objReader-&gt;load($file); ????????$sheet?=?$objPHPExcel-&gt;getSheet(0); ????????//?取得總行數(shù) ????????$highestRow?=?$sheet-&gt;getHighestRow(); ????????//?取得總列數(shù) ????????$highestColumn?=?$sheet-&gt;getHighestColumn(); ????????//循環(huán)讀取excel文件,讀取一條,插入一條 ????????$data=array(); ????????//從第一行開(kāi)始讀取數(shù)據(jù) ????????for($j=3;$jgetActiveSheet()-&gt;getCell("$k$j")-&gt;getValue(); ????????????} ????????} ????????return?$data; ????}

這里獲得excel文件的數(shù)據(jù)內(nèi)容,可以循環(huán)插入數(shù)據(jù)庫(kù)

TP5引用PHPExcel實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊6 分享