일일 프로그램 PHP 지식 ThinkPHP의 PHPExcel은 여러 이미지 데이터를 내보냅니다.

ThinkPHP의 PHPExcel은 여러 이미지 데이터를 내보냅니다.

Dec 17, 2021 am 10:32 AM
1

数据 프로젝트에서 엑셀 인스턴스를 내보내려고 데이터를 작성했는데, 최근에는 이런 프로젝트를 접하지 못해서, 조금이나마 영감을 드리고자 합니다. 도움이 필요한 친구를 위해! : 백엔드 컨트롤러 방식: 控

        /*导入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);#设置单元格行高(此方法经过个人测试,发现会出现excel变形)
 
        // 设置内容居中
        $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);
        
        // 设置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);
 
        // 设置头部单元格注释信息
        $currentSheet->setCellValue('A1', "数据1");
        $currentSheet->setCellValue('B1', "数据2");
        $currentSheet->setCellValue('C1', "数据3");
        $currentSheet->setCellValue('D1', "数据4");
        $currentSheet->setCellValue('E1', "数据5");
        $currentSheet->setCellValue('F1', "数据6");
        $currentSheet->setCellValue('G1', "数据7");
        $currentSheet->setCellValue('H1', "数据8");
        $currentSheet->setCellValue('I1', "数据9");
        $currentSheet->setCellValue('J1', "数据10");
        $currentSheet->setCellValue('K1', "数据11");
        $currentSheet->setCellValue('L1', "数据12");
        $currentSheet->setCellValue('M1', "照片数据1");
        $currentSheet->setCellValue('N1', "照片数据2");
        $currentSheet->setCellValue('O1', "照片数据3");
        $currentSheet->setCellValue('P1', "照片数据4");
 
        $idx = 2;
 
        //查询出数据库内的数据信息
        //查询出所需信息
        $searchInfo = M('数据表')->select();
 
        //组装查询条件
        $year_time_result = 自定义设置的查询条件;
 
        $i = 0;
        foreach ($searchInfo as &$y){
 
            $i++;
 
            //设置数据所在单元格
            $currentSheet->setCellValue('A' . $idx, 数据1);
            $currentSheet->setCellValue('B' . $idx, 数据2);
            $currentSheet->setCellValue('C' . $idx, 数据3);
            $currentSheet->setCellValue('D' . $idx, 数据4);
            $currentSheet->setCellValue('E' . $idx, 数据5);
            $currentSheet->setCellValue('F' . $idx, 数据6);
            $currentSheet->setCellValue('G' . $idx, 数据7);
            $currentSheet->setCellValue('H' . $idx, 数据8);
            $currentSheet->setCellValue('I' . $idx, 数据9);
            $currentSheet->setCellValue('J' . $idx, 数据10);
            $currentSheet->setCellValue('K' . $idx, 数据11);
            $currentSheet->setCellValue('L' . $idx, 数据12);
 
            //设置单元格高度,这个是重点哦
            $currentSheet->getRowDimension($idx) -> setRowHeight(100);
 
            //图片处理类,这个才是图片导出的关键哦
            $objDrawing = new PHPExcel_Worksheet_Drawing();
 
            //开始设置图片
 
            //照片数据1
            if(!empty(照片数据1)){
                $objDrawing->setPath(照片数据1);
                // 设置图片宽度高度
                $objDrawing->setHeight(100);//照片高度
                $objDrawing->setWidth(100); //照片宽度
                /*设置图片要插入的单元格*/
                $objDrawing->setCoordinates('M'.$idx);
                // 图片偏移距离
                $objDrawing->setOffsetX(0);
                $objDrawing->setOffsetY(0);
                $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
            }
 
            //图片处理类,这个才是图片导出的关键哦
            $objDrawing1 = new PHPExcel_Worksheet_Drawing();
 
            //照片数据2
            if(!empty(照片数据2)){
                $objDrawing1->setPath(照片数据2);
                // 设置图片宽度高度
                $objDrawing1->setHeight(100);//照片高度
                $objDrawing1->setWidth(100); //照片宽度
                /*设置图片要插入的单元格*/
                $objDrawing1->setCoordinates('N'.$idx);
                // 图片偏移距离
                $objDrawing1->setOffsetX(0);
                $objDrawing1->setOffsetY(0);
                $objDrawing1->setWorksheet($objPHPExcel->getActiveSheet());
            }
 
            //图片处理类,这个才是图片导出的关键哦
            $objDrawing2 = new PHPExcel_Worksheet_Drawing();
 
            //照片数据3
            if(!empty(照片数据3)){
                $objDrawing2->setPath(照片数据3);
                // 设置图片宽度高度
                $objDrawing2->setHeight(100);//照片高度
                $objDrawing2->setWidth(100); //照片宽度
                /*设置图片要插入的单元格*/
                $objDrawing2->setCoordinates('O'.$idx);
                // 图片偏移距离
                $objDrawing2->setOffsetX(0);
                $objDrawing2->setOffsetY(0);
                $objDrawing2->setWorksheet($objPHPExcel->getActiveSheet());
            }
 
            //图片处理类,这个才是图片导出的关键哦
            $objDrawing3 = new PHPExcel_Worksheet_Drawing();
 
            //照片数据4
            if(!empty(照片数据4)){
                $objDrawing3->setPath(照片数据4);
                // 设置图片宽度高度
                $objDrawing3->setHeight(100);//照片高度
                $objDrawing3->setWidth(100); //照片宽度
                /*设置图片要插入的单元格*/
                $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="导出excel的文件名(可自定义)"');
        header("Content-Transfer-Encoding:binary");
        $write->save('php://output');
로그인 후 복사

코드가 공유됩니다. 이번에 정리해야 할 것은 내 프로젝트의 성공 코드라는 것입니다. Phpexcel의 핵심 카테고리입니다. 이 클래스 라이브러리 파일이 핵심입니다. 무료 다운로드 주소:

ThinkPHP는 데이터를 Excel 파일로 내보내기 위한 PHPExcel 클래스 라이브러리 파일을 구현합니다

. 그렇지 않으면 변수 충돌과 이미지 덮어쓰기 문제가 발생합니다. 마지막 문제는 데이터베이스 데이터를 읽을 때 데이터베이스에 이미지 데이터가 없는 경우 데이터가 비어 있는지 판단해야 한다는 것입니다. 그렇지 않으면 프로그램 오류가 발생합니다. 예외가 발생합니다. 이러한 사항에 주의를 기울이면 우리 기능이 실행되고 프로그램이 매우 잘 표시됩니다.

위 내용은 ThinkPHP의 PHPExcel은 여러 이미지 데이터를 내보냅니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)