개발 꿀팁/PHP

php PHP Excel을 사용하여 Excel 가져오기 방법 소개 (기능 소개)

Jammie 2022. 11. 1. 15:29
반응형

첫걸음

최신 phpexcel 클래스를 다운로드하고, 다운로드 및 압축을 푼 후 classes 폴더가 있습니다. 안에 PHPExcel.php와 PHPExcel 폴더가 포함되어 있습니다. 이 파일과 폴더는 우리에게 필요합니다. classes를 당신의 프로젝트의 한 디렉터리에 압축을 풀고 이름을 phpexcel로 변경합니다

두 번째 단계
직접 코드를 입력하다

require_once'./phpexcel/PHPExcel.php';

// 먼저 새 개체 만들기PHPExcelobject
$objPHPExcel = new PHPExcel( )

// 파일의 속성을 설정합니다. xls 파일-->속성-->상세 정보에서 볼 수 있습니다. xml 테이블에서는 볼 수 없습니다.
$objPHP 엑셀
->getProperties( ) // 파일 속성 객체를 획득하여 아래에 설정 리소스를 제공합니다.
->setCreator("Maarten Balliauw") // 설정 파일 작성자
->setLastModifiedBy("Maarten Balliauw") // 설정 마지막 수정자
->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"); // 카테고리 설정
// 위치 aaa * 아래 코드 위치에 앵커 제공
// 테이블에 데이터 추가
$objPHPExcel->setActiveSheetIndex(0) //첫 번째 내장 테이블 설정(한 xls 파일에 여러 테이블이 있을 수 있음)
->setCellValue ('A1', 'Hello') // 테이블의 셀에 데이터 설정
->setCellValue('B2', 'world!') ) // 데이터 형식은 문자열일 수 있습니다
->setCellValue('C1', 12) // 숫자형
->setCellValue('D2', 12) //
->setCellValue('D3', true) // 부울형
->setCellValue('D4', '=SUM(C1:D2)');//공식

//현재 활동표를 얻으시고, 아래의 튜토리얼에서 $objActSheet를 자주 사용하실 수 있도록 주의하시기 바랍니다.
$objActSheet = $objPHPExcel->getActiveSheet(;
// 위치 bbb *다음 코드 위치에 앵커 제공
// 현재 활성화된 테이블의 이름 설정
$objActSheet->setTitle('Simple2222');

직접 파일 생성

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('myexchel.xlsx');

파일 다운로드 프롬프트 excel 2003.xls
// 2003 엑셀 형식의 xls 파일 생성

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');
 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;

excel 2007.xlsx // 2007 excel 형식의 xlsx 파일 생성

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="01simple.xlsx"');
header('Cache-Control: max-age=0');
 
$objWriter = PHPExcel_IOFactory:: createWriter($objPHPExcel, 'Excel2007');
$objWriter->save( 'php://output');
exit;

pdf 파일 // pdf 파일 다운로드

header('Content-Type: application/pdf');
header('Content-Disposition: attachment;filename="01simple.pdf"');
header('Cache-Control: max-age=0');
 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$objWriter->save('php://output');
exit;
//pdf 파일을 생성하다
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$objWriter->save('a.pdf');

CSV 파일

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV')->setDelimiter(',') // 구분 기호 설정
->setEnclosure(''') // 포위자 설정
->setLineEnding("\r\n")//행 구분 기호 설정
->setSheetIndex(0) // 이벤트 테이블 설정
->save(str_replace('.php', '.csv', __FILE_));

HTML 파일

$objWriter = PHPExcel_IOFactory:: createWriter($objPHPExcel, 'HTML') // $objPHPECel 개체를 HTML 형식으로 변환합니다.
$objWriter->setSheetIndex(0); // 이벤트 테이블 설정
//$objWriter->setImagesRoot('http://www.example.com');
$objWriter->save(str_replace('.php', '.htm', _FILE_); // 파일 저장

날짜 형식
// 초값 변수 얻기

$dateTimeNow = time( );
// 세 개의 표를 현재 실제 날짜 형식, 시간 형식, 날짜 및 시간 형식으로 설정합니다
// 먼저 셀의 값을 PHPExcel_Shared_Date::PHPToExcel 메서드로 변환한 엑셀 형식의 값으로 설정하고, 그 셀의 스타일에서 숫자 스타일을 사용하여 표시 형식을 설정합니다.

$objActSheet->setCellValue('C9', PHPExcel_Shared_Date::PHPToExcel($dateTimeNow));
$objActSheet->getStyle('C9')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMMDD2);
$objActSheet->setCellValue('C10', PHPExcel_Shared_Date::PHPToExcel($dateTimeNow));
$objActSheet->getStyle('C10')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);
$objActSheet->setCellValue('C10', PHPExcel_Shared_Date::PHPToExcel($dateTimeNow));
$objActSheet->getStyle('C10')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);
// E4부터 E13까지의 숫자 형식을 EUR로 설정합니다
$objPHPExcel->getActiveSheet()->getStyle('E4:E13')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);

열의 너비 설정

$objActSheet->getColumnDimension('B')->setAutoSize(true);/컨텐츠 적응
$objActSheet->getColumnDimension('A')->setWidth(30);/30폭

파일 인쇄 머리글과 바닥글 앵커 설정: bbb
//인쇄할 때의 머리말 설정(설정 완료 후 인쇄 미리보기를 통해 효과를 볼 수 있음) 문자열의 &*는 일부 변수인 것 같습니다.
$objActSheet->getHeaderFooter()->setOddHeader('&L&G&C&HPlease treat this document as confidential!');
$objActSheet->getHeaderFooter( )->setOddFooter( '&L&B'. $objPHPExcel->getProperties( )->getTitle( ). '&RPage &P of &N');

페이지 텍스트의 방향과 크기 설정 앵커: bbb
$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);/A4 용지 크기

머리글에 그림 추가하기 office에 유효한 wps에 유효하지 않은 앵커: bbb
$objDrawing = new PHPExcel_Worksheet_HeaderFooterDrawing( );
$objDrawing->setName('PHPExcel logo');
$objDrawing->setPath('./images/phpexcel_logo.gif');
$objDrawing->setHeight(36);
$objPHPExcel->getActiveSheet()->getHeaderFooter()->addImage($objDrawing, PHPExcel_Worksheet_HeaderFooter::IMAGE_HEADER_LEFT);

셀의 주석 앵커 설정: bbb
// 셀에 주석 추가
$objPHPExcel->getActiveSheet()->getComment('E13')->setAuthor('PHPExcel'); // 작성자 설정
$objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E13')->getText()->createTextRun('PHPExcel:'); // 주석 추가
$objCommentRichText->getFont()->setBold(true); // 기존 주석을 굵게 표시
$objPHPExcel->getActiveSheet()->getComment(''E13'')->getText()->createTextRun("\r\n"); //더 많은 주석 추가
$objPHPExcel->getActiveSheet()->getComment(''E13'')->getText()->createTextRun('Total amount on the current invoice, including VAT.');
$objPHPExcel ->getActiveSheet() ->getComment('E13') ->setWidth('100pt'); // 주석 표시의 너비를 설정합니다. Office에서는 유효하지만 wps에서는 유효하지 않습니다.
$objPHPExcel->getActiveSheet()->getComment('E13')->setHeight('100pt');
$objPHPExcel->getActiveSheet()->getComment('E13')->setMarginLeft('150pt');
$objPHPExcel->getActiveSheet()->getComment('E13'')->getFillColor()->setRGB('EEEE'); // 배경색 설정, office에서는 유효, wps에서는 무효

텍스트 블록 추가 효과도 office에서 유효한 wps에서 유효하지 않은 앵커 보기: bbb
// 대략 번역 리치 텍스트 상자 만들기office 유효 wps가 유효하지 않습니다
$objRichText = new PHPExcel_RichText(;
$objRichText->createText('This invoice is'); // 텍스트 쓰기
// 텍스트를 추가하고 굵은 기울임꼴과 텍스트 색상을 설정합니다
$objPayable = $objRichText->createTextRun('payable within thirty days after the end of the month');
$objPayable->getFont()->setBold(true);
$objPayable->getFont()->setItalic(true);
$objPayable->getFont()->setColor( new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_DARKGREEN))
$objRichText->createText(', unless specified otherwise on the invoice.');
// A18 셀에 텍스트 쓰기
$objPHPExcel->getActiveSheet()->getCell('A18')->setValue($objRichText);

셀 병합 및 분할

합병 'A28:B28' 'A28:B28' $ objPHPExcel->getActiveSheet ( ) - > mergeCells ( 다시 ) ; // A28:B28 부문을 분사 $ objPHPExcel->getActiveSheet ( ) - > unmergeCells ( 체크 암호 ) ; // A28:B28 보호 비밀 번호를 셀 보호하는 닻이 : bbb //게 수정하기 위해서는 어떤 보호 목록 $ objPHPExcel->getActiveSheet ( ) - > getProtection ( ) - > setSheet ( true ) ; //을 권장하고 'A3:E13'을 'PHPExcel'는 정말로 $ objPHPExcel->getActiveSheet ( ) - > protectCells (까지 보호하는 A 3) ; // 암호 코드다. E13'B 1'는 보호 설정을 제거 PHPExcel$objPHPExcel->getActiveSheet ( ) - > getStyle ( 셀 ) - > getProtection ( ) - > setLocked ( PHPExcel_Style_Protection::PROTECTION_UNPROTECTED ) ; // 앵커의 글씨체 폰트가 문자 B 1: bbb //을 20일에 설치된, 굵게 Candara 밑줄 'Candara' 'B 1'가 배경 색 'B 1' $ objPHPExcel->getActiveSheet ( ) - > getStyle (. ) - > getFont ( ) - > setName ( ) - > getFont ( ) - > setSize ( 20 ) ; $ obj ) ; $ objPHPExcel->getActiveSheet ( ) - > getStyle ('B 1' 'B 1' 'B 1' PHPExcel->getActiveSheet ( ) - > getStyle ( 문자 ) - > getFont ( ) - > setBold ( true ) ; $ objPHPExcel->getActiveSheet ( ) - > getStyle ( 정렬 ) - > getFont ( ) - > setUnderline ( PHPExcel_Style_Font::UNDERLINE_SINGLE ) ; $ objPHPExcel->getActiveSheet ( ) - > getStyle (으로 닻 ) - > getFont ( ) - > getColor ( ) - > setARGB ( PHPExcel_Style_Color::COLOR_WHITE ) ;. : bbb$objPHPExcel->getActiveSheet ( ) - > getStyl위에서 수평 방향으로 정렬 e ('D11') ->getAlignment ( ) - > setHorizontal (
반응형