PHPSpreadsheet installation and basic usage | Make an Excel File in PHP | PHPSpreadsheet Tutorial #1

안녕 모두 내 PHP 튜토리얼 비디오에 오신 것을 환영합니다

이 비디오에서는 PHP 스프레드 시트를 사용하여 PHP에서 파일을 생성하는 방법을 설명하려고합니다 그렇다면 PHP Excel 라이브러리와의 차이점은 무엇입니까? 사실,이 라이브러리는 PHP Excel의 동일한 작성자가 만듭니다 readme에서 말한 것처럼, PHP 스프레드 시트는 PHP Excel의 다음 버전 일뿐입니다 이는 코드 기반의 품질을 향상시키기 위해 호환성을 파괴합니다 모든 노력이 PHP 스프레드 시트로 옮겨 졌기 때문에, PHP Excel은 더 이상 유지 관리되지 않습니다

따라서이 라이브러리 사용을 고려해야합니다 당신의 다음 프로젝트를 위해 오래된 PHP Excel 대신 문서를 살펴 보겠습니다 이 라이브러리는 더 많은 파일 형식을 지원하고 스프레드 시트에서 pdf 파일을 만들 수 있습니다 이 라이브러리를 실행하려면 PHP 버전 5

6 이상이 필요합니다 또한 일부 PHP 확장 설치시이 라이브러리는 종속성을 관리하기 위해 작성자가 필요합니다 작곡가에 익숙하지 않은 분들을 위해 작곡가는 PHP의 의존성 관리자입니다 시작 페이지에서 설치 프로그램을 사용하여 Linux에 작곡가를 설치하는 방법을 볼 수 있습니다

지역적으로나 전 세계적으로 또는 Windows에서 실행 설치 프로그램을 다운로드하여 실행할 수 있으며 나머지는 처리합니다 작성기는 텍스트 기반 프로그램이므로 명령 터미널에서 실행해야합니다 내 컴퓨터에는 이미 작곡가가 있습니다 진행하기 전에 작곡가가 이미 로컬 컴퓨터에서 실행되고 있는지 확인하십시오 이제 루트 디렉토리에 새로운 디렉토리를 만들자

터미널에서 현재 작업 디렉토리를 새 디렉토리로 변경하십시오 cd 명령 다음에 경로를 사용하십시오 우리는 그것의 repo 이름을 사용하여 PHP 스프레드 시트를 설치할 수 있습니다 저장소 이름 형식은 소문자 github URL과 비슷해야합니다 지금은 작곡가 명령을 붙이자

작성자는 프로젝트에 패키지 이름이 들어있는 새 json 파일을 만듭니다 그런 다음 작곡가는 PHP 스프레드 시트에 필요한 필수 패키지를 다운로드하려고합니다 우리는 여기서 문제가 발생하는 것 같습니다 우리가 메시지를주의 깊게 읽으면, 패키지 중 하나에 fileinfo라는 PHP 확장이 필요하다는 것을 알 수 있습니다 어떤 식 으로든 내 컴퓨터에서 사용할 수 없습니다

이제 사용 가능하도록하겠습니다 PHP 구성 파일을 엽니 다 보통 phpini라고 부릅니다 텍스트 "fileinfo"를 찾으십시오

필자의 구성에서 fileinfo 확장자가 주석 처리 된 것으로 보입니다 그래서 고쳐 주자 동일한 문제가 있지만 컴퓨터에서 다른 확장명을 사용하여 실행할 수도 있습니다 그렇게되면, PHP에서 필요한 확장 기능을 사용하는 방법에 대한 간단한 Google 검색을 수행하십시오 아무 것도 잘못되지 않으면 필요한 종속성이 오류없이 설치됩니다

당신은 또한 PHPSpreadsheet가 PDF를 다루고 차트를 렌더링하기 위해 라이브러리를 설치할 것을 권장한다는 것을 여기에서 볼 수 있습니다 작곡가가 만든 공급 업체 디렉토리가 있습니다 내부에서이 프로젝트에 설치된 모든 패키지와 모든 종속 항목을 찾을 수 있습니다 autoload라는 파일이 있습니다 PHPSpreadsheet를 사용하기 위해 스크립트에서이 자동로드를 호출하면됩니다

작곡가를 사용하는 좋은 점은 fpdf와 같은 라이브러리를 추가 할 수 있다는 것입니다 domPDF 또는 tcpdf를 하나의 명령으로 실행합니다 스크립트에서이 파일을 사용하려면 동일한 자동로드 파일을 사용하십시오 이 라이브러리를 사용하려면 autoloadphp를 사용할 수 있습니다

PHPSpreadsheet src 디렉토리 내에서 직접 Bootstrapphp를 호출하십시오 기본적으로 둘 다 자동로드를 호출하는 동일한 작업을 수행합니다 autoloadphp를 사용하는 것이 좋습니다

그래서 스프레드 시트 스크립트 이름을 simple1php로 지정하겠습니다 먼저 autoload 파일을 호출하십시오 그런 다음 스프레드 시트 라이브러리를 사용하려면 다음을 사용하여 여기에서 호출합니다 PhpOffice PhpSpreadsheet Spreadsheet를 사용하십시오

지금은 시작 페이지를보고 hello world 스크립트를 복사 해 봅시다 이제이 코드가하는 것을 설명하겠습니다 먼저 autoload 스크립트를 호출합니다 PHPSpreadsheet 라이브러리를 네임 스페이스로로드하십시오 그리고 엑셀 파일을 만들기위한 xlsx 작가 클래스

당신은 PHP 네임 스페이스에 대한 설명을 넣은 링크에서 더 많은 것을 읽을 수 있습니다 그런 다음 새로운 스프레드 시트 개체를 만듭니다 첫 번째 시트 인 현재 활성화 된 시트를 가져옵니다 A1 셀의 값을 "Hello World!"로 설정하십시오 다음으로 방금 만든 스프레드 시트로 xlsx 개체를 만듭니다

서버에 hello world dot xlsx라는 파일에 저장하십시오 이제 브라우저에서 스크립트를 실행 해 봅시다 죄송합니다, 아파치 서버를 시작하는 것을 잊어 버린 것 같습니다 브라우저에는 아무 것도 일어나지 않습니다 왜냐하면 전에 말했듯이 파일 결과가 서버에 저장되기 때문입니다

이제 서버에 저장하는 대신이 파일을 브라우저에 다운로드하려고하면 어떻게 될까요? 그렇게하기 위해서는 생성이 완료된 후 페이지를 파일로 리디렉션하면됩니다 그러나 나는이 방법을 추천하지 않는다 지금은 그냥 사용해 보자 세미콜론을 잊어 버렸고 이름이 다소 틀린 것 같습니다 내가 말했듯이, 나는이 방법을 추천하지 않는다

이제, PHPSpreadsheet와 함께 제공되는 IOFactory 클래스를 사용하는 것이 좋습니다 IOFactory는 파일에서 읽고 쓸 수있는 내장 클래스입니다 IOFactory는 또 다른 PHPOffice 라이브러리와 함께 제공됩니다 PHPWord 및 PHPPresentation과 같은 이제 스크립트를 새로운 스크립트로 복사 해 봅시다 쓰기 부분을 제거하고 대신 IOFactory를 사용합시다

우리는 IOFactory의 createWriter 메소드를 사용할 것이다 또한 스크립트에서 IOFactory 클래스를로드하는 것을 잊지 마십시오 엑셀을 파일로 저장할 필요가 없으므로 PHP 출력에 직접 저장합니다 그것을 시도해 봅시다 그것은 뒤섞여 보인다

이상한 캐릭터가 많이 있습니다 이것은 우리가 기대했던 것이 아닙니다 우리가하는 일은 이진 파일을 만드는 것이므로, 아직 서버와 브라우저는이를 일반 텍스트 파일로 취급합니다 헤더를 변경하여이 파일을 Excel 파일로 처리하도록 브라우저와 서버에 지시합시다 Google의 마술을 통해 Excel 헤더가 어떻게 보이는지 봅시다

콘텐츠 형식 헤더를 복사하여 콘텐츠 형식을 Excel 파일로 정의 해 봅시다 이제 작동 중입니다 파일 이름이 Excel 파일의 경우 다소 잘못되었습니다 헤더에 뭔가를 추가해 봅시다 이제 예상대로 작동합니다

이것으로이 장의 튜토리얼을 마칩니다 설명에 소스 코드에 대한 링크를 넣습니다 댓글 섹션에서 무엇이든 물어보십시오 내 비디오를 친절하게 좋아하고 내 채널을 구독하십시오 다음 챕터에서 만나요