亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

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

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

Dec 17, 2021 am 10:32 AM
1

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

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

        /*導(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 格式
 
        //實例化PHPExcel類
        $objPHPExcel = new PHPExcel();
 
        $objPHPExcel->createSheet(0);
        $objPHPExcel->setActiveSheetIndex(0);
        $currentSheet = $objPHPExcel->getActiveSheet();
 
//      $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(300);#設(shè)置單元格行高(此方法經(jīng)過個人測試,發(fā)現(xiàn)會出現(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ù)庫內(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è)置單元格高度,這個是重點哦
            $currentSheet->getRowDimension($idx) -> setRowHeight(100);
 
            //圖片處理類,這個才是圖片導(dǎo)出的關(guān)鍵哦
            $objDrawing = new PHPExcel_Worksheet_Drawing();
 
            //開始設(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());
            }
 
            //圖片處理類,這個才是圖片導(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());
            }
 
            //圖片處理類,這個才是圖片導(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());
            }
 
            //圖片處理類,這個才是圖片導(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');

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

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

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72