国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) 每日編程 PHP知識(shí) ThinkPHP之PHPExcel導(dǎo)出多張圖片數(shù)據(jù)

ThinkPHP之PHPExcel導(dǎo)出多張圖片數(shù)據(jù)

Dec 17, 2021 am 10:32 AM
1

????????之前項(xiàng)目上做過(guò)數(shù)據(jù)導(dǎo)出Excel的實(shí)例,最近需要導(dǎo)出圖片數(shù)據(jù),沒(méi)遇到過(guò)這樣的項(xiàng)目,所以在處理成功之際,特此記錄一下,希望可以給有需要的小伙伴一絲靈感!

????????后端控制器方法:

        /*導(dǎo)入phpExcel核心類 */
        require_once APP_PATH.'PHPExcel/PHPExcel.php';
        require_once APP_PATH.'PHPExcel/PHPExcel/Writer/Excel5.php';     // 用于其他低版本xls
        require_once APP_PATH.'PHPExcel/PHPExcel/Writer/Excel2007.php'; // 用于 excel-2007 格式
 
        //實(shí)例化PHPExcel類
        $objPHPExcel = new PHPExcel();
 
        $objPHPExcel->createSheet(0);
        $objPHPExcel->setActiveSheetIndex(0);
        $currentSheet = $objPHPExcel->getActiveSheet();
 
//      $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(300);#設(shè)置單元格行高(此方法經(jīng)過(guò)個(gè)人測(cè)試,發(fā)現(xiàn)會(huì)出現(xiàn)excel變形)
 
        // 設(shè)置內(nèi)容居中
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('E')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('G')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('H')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('I')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('J')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('K')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('L')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('M')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('N')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('O')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('P')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        
        // 設(shè)置excel寬度
        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
        $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);
        $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
        $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20);
        $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(20);
        $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20);
        $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(20);
        $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(20);
        $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(20);
        $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(20);
        $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(20);
 
        // 設(shè)置頭部單元格注釋信息
        $currentSheet->setCellValue('A1', "數(shù)據(jù)1");
        $currentSheet->setCellValue('B1', "數(shù)據(jù)2");
        $currentSheet->setCellValue('C1', "數(shù)據(jù)3");
        $currentSheet->setCellValue('D1', "數(shù)據(jù)4");
        $currentSheet->setCellValue('E1', "數(shù)據(jù)5");
        $currentSheet->setCellValue('F1', "數(shù)據(jù)6");
        $currentSheet->setCellValue('G1', "數(shù)據(jù)7");
        $currentSheet->setCellValue('H1', "數(shù)據(jù)8");
        $currentSheet->setCellValue('I1', "數(shù)據(jù)9");
        $currentSheet->setCellValue('J1', "數(shù)據(jù)10");
        $currentSheet->setCellValue('K1', "數(shù)據(jù)11");
        $currentSheet->setCellValue('L1', "數(shù)據(jù)12");
        $currentSheet->setCellValue('M1', "照片數(shù)據(jù)1");
        $currentSheet->setCellValue('N1', "照片數(shù)據(jù)2");
        $currentSheet->setCellValue('O1', "照片數(shù)據(jù)3");
        $currentSheet->setCellValue('P1', "照片數(shù)據(jù)4");
 
        $idx = 2;
 
        //查詢出數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)信息
        //查詢出所需信息
        $searchInfo = M('數(shù)據(jù)表')->select();
 
        //組裝查詢條件
        $year_time_result = 自定義設(shè)置的查詢條件;
 
        $i = 0;
        foreach ($searchInfo as &$y){
 
            $i++;
 
            //設(shè)置數(shù)據(jù)所在單元格
            $currentSheet->setCellValue('A' . $idx, 數(shù)據(jù)1);
            $currentSheet->setCellValue('B' . $idx, 數(shù)據(jù)2);
            $currentSheet->setCellValue('C' . $idx, 數(shù)據(jù)3);
            $currentSheet->setCellValue('D' . $idx, 數(shù)據(jù)4);
            $currentSheet->setCellValue('E' . $idx, 數(shù)據(jù)5);
            $currentSheet->setCellValue('F' . $idx, 數(shù)據(jù)6);
            $currentSheet->setCellValue('G' . $idx, 數(shù)據(jù)7);
            $currentSheet->setCellValue('H' . $idx, 數(shù)據(jù)8);
            $currentSheet->setCellValue('I' . $idx, 數(shù)據(jù)9);
            $currentSheet->setCellValue('J' . $idx, 數(shù)據(jù)10);
            $currentSheet->setCellValue('K' . $idx, 數(shù)據(jù)11);
            $currentSheet->setCellValue('L' . $idx, 數(shù)據(jù)12);
 
            //設(shè)置單元格高度,這個(gè)是重點(diǎn)哦
            $currentSheet->getRowDimension($idx) -> setRowHeight(100);
 
            //圖片處理類,這個(gè)才是圖片導(dǎo)出的關(guān)鍵哦
            $objDrawing = new PHPExcel_Worksheet_Drawing();
 
            //開(kāi)始設(shè)置圖片
 
            //照片數(shù)據(jù)1
            if(!empty(照片數(shù)據(jù)1)){
                $objDrawing->setPath(照片數(shù)據(jù)1);
                // 設(shè)置圖片寬度高度
                $objDrawing->setHeight(100);//照片高度
                $objDrawing->setWidth(100); //照片寬度
                /*設(shè)置圖片要插入的單元格*/
                $objDrawing->setCoordinates('M'.$idx);
                // 圖片偏移距離
                $objDrawing->setOffsetX(0);
                $objDrawing->setOffsetY(0);
                $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
            }
 
            //圖片處理類,這個(gè)才是圖片導(dǎo)出的關(guān)鍵哦
            $objDrawing1 = new PHPExcel_Worksheet_Drawing();
 
            //照片數(shù)據(jù)2
            if(!empty(照片數(shù)據(jù)2)){
                $objDrawing1->setPath(照片數(shù)據(jù)2);
                // 設(shè)置圖片寬度高度
                $objDrawing1->setHeight(100);//照片高度
                $objDrawing1->setWidth(100); //照片寬度
                /*設(shè)置圖片要插入的單元格*/
                $objDrawing1->setCoordinates('N'.$idx);
                // 圖片偏移距離
                $objDrawing1->setOffsetX(0);
                $objDrawing1->setOffsetY(0);
                $objDrawing1->setWorksheet($objPHPExcel->getActiveSheet());
            }
 
            //圖片處理類,這個(gè)才是圖片導(dǎo)出的關(guān)鍵哦
            $objDrawing2 = new PHPExcel_Worksheet_Drawing();
 
            //照片數(shù)據(jù)3
            if(!empty(照片數(shù)據(jù)3)){
                $objDrawing2->setPath(照片數(shù)據(jù)3);
                // 設(shè)置圖片寬度高度
                $objDrawing2->setHeight(100);//照片高度
                $objDrawing2->setWidth(100); //照片寬度
                /*設(shè)置圖片要插入的單元格*/
                $objDrawing2->setCoordinates('O'.$idx);
                // 圖片偏移距離
                $objDrawing2->setOffsetX(0);
                $objDrawing2->setOffsetY(0);
                $objDrawing2->setWorksheet($objPHPExcel->getActiveSheet());
            }
 
            //圖片處理類,這個(gè)才是圖片導(dǎo)出的關(guān)鍵哦
            $objDrawing3 = new PHPExcel_Worksheet_Drawing();
 
            //照片數(shù)據(jù)4
            if(!empty(照片數(shù)據(jù)4)){
                $objDrawing3->setPath(照片數(shù)據(jù)4);
                // 設(shè)置圖片寬度高度
                $objDrawing3->setHeight(100);//照片高度
                $objDrawing3->setWidth(100); //照片寬度
                /*設(shè)置圖片要插入的單元格*/
                $objDrawing3->setCoordinates('P'.$idx);
                // 圖片偏移距離
                $objDrawing3->setOffsetX(0);
                $objDrawing3->setOffsetY(0);
                $objDrawing3->setWorksheet($objPHPExcel->getActiveSheet());
            }
 
            $idx++;
 
        }
 
        $write = new PHPExcel_Writer_Excel5($objPHPExcel);
        header("Pragma: public");
        header("Expires: 0");
        header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
        header("Content-Type:application/force-download");
        header("Content-Type:application/vnd.ms-execl");
        header("Content-Type:application/octet-stream");
        header("Content-Type:application/download");;
        header('Content-Disposition:attachment;filename="導(dǎo)出excel的文件名(可自定義)"');
        header("Content-Transfer-Encoding:binary");
        $write->save('php://output');

????????代碼分享完了,需要小伙伴們注意的是,此次整理的這個(gè)是我項(xiàng)目實(shí)踐成功的代碼,首先需要注意的是,一定一定要導(dǎo)入phpExcel核心類,這個(gè)類庫(kù)文件是關(guān)鍵,免費(fèi)下載地址:ThinkPHP實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出為Excel文件的PHPExcel類庫(kù)文件,然后需要注意的是,在導(dǎo)出多個(gè)圖片的時(shí)候一定要記住實(shí)例化多個(gè)圖片變量,否則會(huì)出現(xiàn)變量沖突,圖片覆蓋的問(wèn)題,最后一個(gè)問(wèn)題,需要注意的是讀取數(shù)據(jù)庫(kù)數(shù)據(jù)的時(shí)候,如果數(shù)據(jù)庫(kù)內(nèi)不存在圖片數(shù)據(jù)的話,需要進(jìn)行數(shù)據(jù)是否為空的判斷,否則運(yùn)行會(huì)出現(xiàn)程序錯(cuò)誤異常,如果這些都注意做好,那么我們的這項(xiàng)功能將會(huì)很好的進(jìn)行程序運(yùn)行和呈現(xiàn)。

以上是ThinkPHP之PHPExcel導(dǎo)出多張圖片數(shù)據(jù)的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276