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

首頁(yè) 每日程式設(shè)計(jì) PHP知識(shí) ThinkPHP之PHPExcel匯出多張圖片數(shù)據(jù)

ThinkPHP之PHPExcel匯出多張圖片數(shù)據(jù)

Dec 17, 2021 am 10:32 AM
1

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

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

        /*導(dǎo)入phpExcel核心類(lèi) */
        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類(lèi)
        $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;
 
        //查詢(xún)出數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)信息
        //查詢(xún)出所需信息
        $searchInfo = M('數(shù)據(jù)表')->select();
 
        //組裝查詢(xún)條件
        $year_time_result = 自定義設(shè)置的查詢(xún)條件;
 
        $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);
 
            //圖片處理類(lèi),這個(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());
            }
 
            //圖片處理類(lèi),這個(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());
            }
 
            //圖片處理類(lèi),這個(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());
            }
 
            //圖片處理類(lèi),這個(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核心類(lèi),這個(gè)類(lèi)庫(kù)檔案是關(guān)鍵,免費(fèi)下載位址:ThinkPHP實(shí)作資料匯出為Excel檔案的PHPExcel類(lèi)庫(kù)檔案,然後要注意的是,在匯出多個(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ù)的話(huà),需要進(jìn)行數(shù)據(jù)是否為空的判斷,否則運(yùn)行會(huì)出現(xiàn)程式錯(cuò)誤異常,如果這些都注意做好,那麼我們的這項(xiàng)功能將會(huì)很好的進(jìn)行程式運(yùn)行和呈現(xiàn)。

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

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)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

用於從照片中去除衣服的線(xiàn)上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

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)

熱門(mén)話(huà)題