從php中文網(wǎng)下載phpexcel
將下載好的PHPExcel文件夾跟PHPExcel放置在框架中的Vendor目錄下,注意目錄的結(jié)構(gòu),按照我的代碼來(lái)基本上直接引用就能使用
前端代碼
立即學(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')->select(); ????????vendor("PHPExcel176.PHPExcel"); ????????$objPHPExcel?=?new?PHPExcel(); ????????$objPHPExcel->getProperties()->setCreator("ctos") ????????????->setLastModifiedBy("ctos") ????????????->setTitle("Office?2007?XLSX?Test?Document") ????????????->setSubject("Office?2007?XLSX?Test?Document") ????????????->setDescription("Test?document?for?Office?2007?XLSX,?generated?using?PHP?classes.") ????????????->setKeywords("office?2007?openxml?php") ????????????->setCategory("Test?result?file"); ????????$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(8); ????????$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20); ????????$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(10); ????????$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10); ????????$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(50); ????????//設(shè)置行高度 ????????$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(22); ????????$objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(20); ????????//set?font?size?bold ????????$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10); ????????$objPHPExcel->getActiveSheet()->getStyle('A2:E2')->getFont()->setBold(true); ????????$objPHPExcel->getActiveSheet()->getStyle('A2:E2')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); ????????$objPHPExcel->getActiveSheet()->getStyle('A2:E2')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); ????????//設(shè)置水平居中 ????????$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT); ????????$objPHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); ????????$objPHPExcel->getActiveSheet()->getStyle('B')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); ????????$objPHPExcel->getActiveSheet()->getStyle('D')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); ????????$objPHPExcel->getActiveSheet()->getStyle('E')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); ????????//合并cell ????????$objPHPExcel->getActiveSheet()->mergeCells('A1:J1'); ????????//?set?table?header?content ????????$objPHPExcel->setActiveSheetIndex(0) ????????????->setCellValue('A1',?'訂單數(shù)據(jù)匯總??時(shí)間:'.date('Y-m-d?H:i:s')) ????????????->setCellValue('A2',?'訂單ID') ????????????->setCellValue('B2',?'商品名稱') ????????????->setCellValue('C2',?'價(jià)格') ????????????->setCellValue('D2',?'庫(kù)存') ????????????->setCellValue('E2',?'圖片'); ????????//?Miscellaneous?glyphs,?UTF-8 ????????for($i=0;$i<count>getActiveSheet(0)->setCellValue('A'.($i+3),?$list[$i]['id']); ????????????$objPHPExcel->getActiveSheet(0)->setCellValue('B'.($i+3),?$list[$i]['name']); ????????????$objPHPExcel->getActiveSheet(0)->setCellValue('C'.($i+3),?$list[$i]['price']); ????????????$objPHPExcel->getActiveSheet(0)->setCellValue('D'.($i+3),?$list[$i]['stock']); ????????????$objPHPExcel->getActiveSheet(0)->setCellValue('E'.($i+3),?$list[$i]['main_img_url']); ????????????//$objPHPExcel->getActiveSheet()->getStyle('A'.($i+3).':J'.($i+3))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); ????????????//$objPHPExcel->getActiveSheet()->getStyle('A'.($i+3).':J'.($i+3))->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); ????????????$objPHPExcel->getActiveSheet()->getRowDimension($i+3)->setRowHeight(16); ????????} ????????//??sheet命名 ????????$objPHPExcel->getActiveSheet()->setTitle('訂單匯總表'); ????????//?Set?active?sheet?index?to?the?first?sheet,?so?Excel?opens?this?as?the?first?sheet ????????$objPHPExcel->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->save('php://output');</count>
導(dǎo)入功能控制器的代碼
public?function?daoru(){ ????????$file?=?$_FILES['upload']['tmp_name'][0]; ????????$data?=?$this->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->load($file); ????????$sheet?=?$objPHPExcel->getSheet(0); ????????//?取得總行數(shù) ????????$highestRow?=?$sheet->getHighestRow(); ????????//?取得總列數(shù) ????????$highestColumn?=?$sheet->getHighestColumn(); ????????//循環(huán)讀取excel文件,讀取一條,插入一條 ????????$data=array(); ????????//從第一行開(kāi)始讀取數(shù)據(jù) ????????for($j=3;$jgetActiveSheet()->getCell("$k$j")->getValue(); ????????????} ????????} ????????return?$data; ????}
這里獲得excel文件的數(shù)據(jù)內(nèi)容,可以循環(huán)插入數(shù)據(jù)庫(kù)中
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END