PHPExcel 설치 편집하기

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
3번째 줄: 3번째 줄:
;PHPExcel 시작하기
;PHPExcel 시작하기


[[파일:PHPExcel.png]]
<img src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=phpexcel&amp;DownloadId=65397&amp;Build=21018" alt="PHPExcel">


==다운로드==
==다운로드==
*http://phpexcel.codeplex.com/ 접속
*http://phpexcel.codeplex.com/ 접속
*[Download] 클릭하여 PHPExcel_1.8.0_doc.zip 다운로드(5,284 KB)
*[Download] 클릭하여 PHPExcel_1.8.0_doc.zip 다운로드(5,284 KB)
*PHPExcel_1.8.0_doc.zip 압축해제
:내부에 Classes, Documentation, Examples 폴더가 있다.


==설치==
==설치==
*서버의 [[/usr/share/php/vendor 폴더]]에 zip파일 업로드<ref>폴더가 없으면 만들어서 넣자.</ref>
*서버의 [[/usr/share/php/vendor 폴더]]에 zip파일 업로드<ref>폴더가 없으면 만들어서 넣자.</ref>
<syntaxhighlight lang='console'>
<source lang='cli'>
[root@zetawiki vendor]# ll PHPExcel_1.8.0_doc.zip  
[root@zetawiki vendor]# ll PHPExcel_1.8.0_doc.zip  
-rw-r--r-- 1 root root 5410110 Aug 20 15:45 PHPExcel_1.8.0_doc.zip
-rw-r--r-- 1 root root 5410110 Aug 20 15:45 PHPExcel_1.8.0_doc.zip
</syntaxhighlight>
</source>
*하위폴더 만들고 압축해제
*하위폴더 만들고 압축해제
<syntaxhighlight lang='console'>
<source lang='cli'>
[root@zetawiki vendor]# mkdir PHPExcel
[root@zetawiki vendor]# mkdir PHPExcel
[root@zetawiki vendor]# unzip PHPExcel_1.8.0_doc.zip -dPHPExcel
[root@zetawiki vendor]# unzip PHPExcel_1.8.0_doc.zip -dPHPExcel
27번째 줄: 29번째 줄:
   inflating: PHPExcel/Examples/XMLReader.php   
   inflating: PHPExcel/Examples/XMLReader.php   
   inflating: PHPExcel/Examples/XMLTest.xml  
   inflating: PHPExcel/Examples/XMLTest.xml  
</syntaxhighlight>
</source>


==쉘 테스트==
==쉘 테스트==
*[[DOCUMENT_ROOT 폴더]]로 이동
*[[DOCUMENT_ROOT 폴더]]로 이동
*실습용 폴더 ex/phpexcel 생성
*실습용 폴더 /ex/phpexcel 생성
*phpexcel1.php 파일 작성
*phpexcel1.php 파일 작성
<syntaxhighlight lang='console'>
<source lang='cli'>
[root@zetawiki vendor]# cd /var/www/html
[root@zetawiki vendor]# cd /var/www/html
[root@zetawiki html]# mkdir -p ex/phpexcel
[root@zetawiki html]# mkdir -p /ex/phpexcel
[root@zetawiki html]# cd ex/phpexcel
[root@zetawiki html]# cd /ex/phpexcel
[root@zetawiki phpexcel]# pwd
/var/www/html/ex/phpexcel
[root@zetawiki phpexcel]# vi phpexcel1.php
[root@zetawiki phpexcel]# vi phpexcel1.php
</syntaxhighlight>
</source>
<syntaxhighlight lang='php'>
<source lang='php'>
<?php
<?php
include 'vendor/PHPExcel/Classes/PHPExcel.php';
include 'vendor/PHPExcel/Classes/PHPExcel.php';
71번째 줄: 71번째 줄:
$writer->save('test.xlsx');
$writer->save('test.xlsx');
echo "Done...\n";
echo "Done...\n";
</syntaxhighlight>
</source>
*쉘에서 실행하고 test.xlsx이 생성되었는지 확인
*쉘에서 실행하고 test.xlsx이 생성되었는지 확인
<syntaxhighlight lang='console'>
<source lang='cli'>
[root@zetawiki phpexcel]# php phpexcel1.php
[root@zetawiki phpexcel]# php phpexcel1.php
Done...
Done...
[root@zetawiki phpexcel]# ll test.xlsx
[root@zetawiki phpexcel]# ll test.xlsx
-rw-r--r-- 1 root root 6571 Aug 31 22:16 test.xlsx
-rw-r--r-- 1 root root 6571 Aug 31 22:16 test.xlsx
</syntaxhighlight>
</source>
*test.xlsx 파일을 내려받아 내용 확인
*test.xlsx 파일을 내려받아 내용 확인
*다음의 웹 테스트를 위해 test.xlsx 삭제
*다음의 웹 테스트를 위해 test.xlsx 삭제
<syntaxhighlight lang='console'>
<source lang='cli'>
[root@zetawiki phpexcel]# rm -f test.xlsx
[root@zetawiki phpexcel]# rm -f test.xlsx
</syntaxhighlight>
</source>


==웹 테스트 (오류)==
==웹 테스트 (오류)==
89번째 줄: 89번째 줄:
*Done... 이라는 문구가 뜨지 않는다.
*Done... 이라는 문구가 뜨지 않는다.
*[[아파치 오류 로그]]를 확인해보면...
*[[아파치 오류 로그]]를 확인해보면...
<syntaxhighlight lang='console'>
<source lang='cli'>
[root@zetawiki phpexcel]# cat /var/log/httpd/error_log | grep phpexcel1
[root@zetawiki phpexcel]# cat /var/log/httpd/error_log | grep phpexcel1
[Sat Jun 20 21:23:44 2015] [error] [client 127.0.0.1] PHP Fatal error:  Uncaught exception 'PHPExcel_Writer_Exception' with message 'Could not close zip file test.xlsx.' in /usr/share/php/vendor/PHPExcel/Classes/PHPExcel/Writer/Excel2007.php:348\nStack trace:\n#0 /var/www/html/ex/phpexcel/phpexcel1.php(28): PHPExcel_Writer_Excel2007->save('test.xlsx')\n#1 {main}\n  thrown in /usr/share/php/vendor/PHPExcel/Classes/PHPExcel/Writer/Excel2007.php on line 348
[Sat Jun 20 21:23:44 2015] [error] [client 127.0.0.1] PHP Fatal error:  Uncaught exception 'PHPExcel_Writer_Exception' with message 'Could not close zip file test.xlsx.' in /usr/share/php/vendor/PHPExcel/PHPExcel/Writer/Excel2007.php:348\nStack trace:\n#0 /var/www/html/phpexcel/phpexcel1.php(28): PHPExcel_Writer_Excel2007->save('test.xlsx')\n#1 {main}\n  thrown in /usr/share/php/vendor/PHPExcel/PHPExcel/Writer/Excel2007.php on line 348
</syntaxhighlight>
</source>


==오류 해결 (권한 조정)==
==오류 해결 (권한 조정)==
[[httpd]]<ref>보다 정확하게는 httpd를 실행한 리눅스 계정</ref>에게 해당 폴더의 쓰기 권한이 없기 때문에 오류가 발생한다.
[[httpd]]<ref>보다 정확하게는 httpd를 실행한 리눅스 계정</ref>에게 해당 폴더의 쓰기 권한이 없기 때문에 오류가 발생한다.
<syntaxhighlight lang='console'>
<source lang='cli'>
[root@zetawiki ~]# ps -ef | grep httpd | grep -v grep
[root@zetawiki ~]# ps -ef | grep httpd | grep -v grep
root      1750    1  0 Jun13 ?        00:00:00 /usr/sbin/httpd
root      1750    1  0 Jun13 ?        00:00:00 /usr/sbin/httpd
111번째 줄: 111번째 줄:
apache  25934  1750  0 Jun20 ?        00:02:20 /usr/sbin/httpd
apache  25934  1750  0 Jun20 ?        00:02:20 /usr/sbin/httpd
apache  29616  1750  0 Jun18 ?        00:04:32 /usr/sbin/httpd
apache  29616  1750  0 Jun18 ?        00:04:32 /usr/sbin/httpd
</syntaxhighlight>
</source>
:→ 최초 구동은 root가 했지만, 실제로 사용자의 요청을 받아 PHP 명령어를 수행하는 계정은 apache이다.
:→ 최초 구동은 root가 했지만, 실제로 사용자의 요청을 받아 PHP 명령어를 수행하는 계정은 apache이다.


<syntaxhighlight lang='console'>
<source lang='cli'>
[root@zetawiki phpexcel]# ll /var/www/html/ex/phpexcel/ -d
[root@hub phpexcel]# ll /var/www/html/phpexcel/ -d
drwxr-xr-x 3 root root 4096 Aug 31 22:20 /var/www/html/ex/phpexcel/
drwxr-xr-x 3 root root 4096 Aug 31 22:20 /var/www/html/phpexcel/
</syntaxhighlight>
</source>
:→ phpexcel 폴더의 퍼미션이 [[755]]이고, owner가 root이므로 apache 계정이 파일을 쓸 수 없는 상태이다.
:→ phpexcel 폴더의 퍼미션이 [[755]]이고, owner가 root이므로 apache 계정이 파일을 쓸 수 없는 상태이다.


<syntaxhighlight lang='console'>
<source lang='cli'>
[root@zetawiki phpexcel]# chown apache:apache /var/www/html/ex/phpexcel/
[root@zetawiki phpexcel]# chown apache:apache /var/www/html/phpexcel/
[root@zetawiki phpexcel]# ll /var/www/html/ex/phpexcel/ -d
[root@zetawiki phpexcel]# ll /var/www/html/phpexcel/ -d
drwxr-xr-x 3 apache apache 4096 Aug 31 22:20 /var/www/html/ex/phpexcel/
drwxr-xr-x 3 apache apache 4096 Aug 31 22:20 /var/www/html/phpexcel/
</syntaxhighlight>
</source>
:→ phpexcel 폴더의 소유자를 apache로 바꾸었다.
:→ phpexcel 폴더의 소유자를 apache로 바꾸었다.


==실행예시 (성공)==
==실행예시 (성공)==
* http://서버주소/ex/phpexcel/phpexcel1.php 다시 접속
* http://서버주소/phpexcel/phpexcel1.php 다시 접속
<syntaxhighlight lang='text'>
<source lang='text'>
Done...
Done...
</syntaxhighlight>
</source>
:→ 오류 없이 정상적으로 수행되었다.
:→ 오류 없이 정상적으로 수행되었다.


*파일 생성 확인
*파일 생성 확인
<syntaxhighlight lang='console'>
<source lang='cli'>
[root@zetawiki phpexcel]# ll test.xlsx
[root@zetawiki phpexcel]# ll test.xlsx
-rw-r--r-- 1 apache apache 6570 Aug 31 22:33 test.xlsx
-rw-r--r-- 1 apache apache 6570 Aug 31 22:33 test.xlsx
</syntaxhighlight>
</source>
*http://서버주소/ex/phpexcel/test.xlsx 다운로드하여 내용 확인
*http://서버주소/phpexcel/test.xlsx 다운로드하여 내용 확인


==같이 보기==
==같이 보기==
*[[PHPExcel 서버에 저장하지 않고 다운로드시키기]]
*[[PHPExcel HTML 테이블을 엑셀파일로 저장하기]]
*[[Fatal error: Class 'XMLWriter' not found]]
*[[Fatal error: Class 'XMLWriter' not found]]
*[[PHPWord 설치]]


==주석==
==주석==

제타위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 제타위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 편집 도움말 (새 창에서 열림)

이 문서에서 사용한 틀: