엑셀 (다운로드) 모듈 만들어보기
아무리 주말이라지만 24시간이나 새 글이 없다니요.
제가 다이아몬드 메달을 받은 건 다 이유가 있었던 겁니다;;;
주말에 시간 내서 엑셀 파일을 다운로드 받을 수 있는 모듈을 만들어봤습니다.
모듈은 역시 어렵네요.
여러모로 신경 쓸 게 많아서 이 파일 저 파일 옮겨 다니면서 수정하고 새로 코딩하고 ... 정신이 없었어요.
그 와중에 기진곰님의 모듈생성기가 없었다면... 생각만 해도 소름입니다;;;
암튼 회원목록과 게시판 목록을 엑셀로 다운로드 받게 하는 게 목표인데요.
현재 스코어, 회원목록 엑셀 다운로드 작업이 끝났습니다.
모듈을 설치하면 관리자 모듈의 회원 목록 페이지에 아래와 같이 '엑셀 저장' 버튼이 삽입되구요.
클릭하면 다음과 같은 팝업창이 뜹니다.
여기서 엑셀 파일에 포함하고자 하는 항목들을 체크해서 다운로드 받으면 됩니다.
아, 그리고 관리자 모듈의 회원 목록 페이지를 기준으로 목록을 그대로 가져오게 되는데요.
이때 현재 페이지만 출력할 수도 있고, 전체 페이지를 출력할 수도 있습니다.
이후의 계획은 게시판 목록도 가져오는 건데요.
잘 될지 모르겠습니다.
일단 다른 점이 있다면, 관리자 페이지와 다르게 여러 스킨들이 있다보니 엑셀 팝업창을 띄울 버튼을 자동으로 삽입하기 어렵다는 게 가장 걸립니다.
그리고 현재까지 작업은 회원목록을 기준으로 한 것이어서, 게시판 목록까지 하나의 모듈에 담으려면 기존 코드들을 대거 수리해야 하는 일이 있을 것 같기도 하구요;;;
뭐, 그 외에 예기치 않은 돌발변수도 있겠지요.
암튼 10월 첫 주 알차게 보내시고, 다음에 또 소식 남기겠습니다!

댓글 25
화이팅 ~ 응원합니다.
(일시켜드릴 명분이 생겻다 얏호)
phpspreadsheet 이용하나요?
phpspreadsheet 생각을 하긴 했는데 사이즈가 너무 큰 느낌이어서, 목록 데이터를 table 형태의 html로 렌더링해서 콜백함수로 넘기고, sheetJS라는 게 있길래 cdn으로 실행시켜서 html을 xlsx로 출력... 쿨럭..
sheetJs 는 php 버전에 상관없이 쓸수 있으니 좋네요 ㅎㅎ
근데 js로 처리하고, 그것도 cdn으로 실행시키니까 몹시 부끄럽습니다ㅋㅋㅋ
PHP 7.3 이상 지원하는 라이브러리가 꼭 필요하다면 그냥 PHP 7.3 이상에서만 돌아가는 모듈이라고 선언해 버리면 됩니다. 최대한 많은 사람에게 판매해야 하는 유료 자료가 아니라면 이 정도는 문제가 되지 않습니다.
다만, phpspreadsheet는 데이터 양이 조금만 늘어나도 메모리 사용량이 말도 안 되게 폭증하기 때문에 전체 목록을 출력하는 데는 적합하지 않습니다. 서버단에서 엑셀 파일을 생성할 때는 XLSXWriter를 사용해 보세요.
또 하나의 큰 획을 그으시네요. 향후 게시판은 게시판별로 엑셀을 저장하는 기능으로 해서 하나의 모듈에 담지 말고 분리하시는게 어떠실지. 항상 멋진 작품 감사합니다.
네..맞습니다. 아무래도 회원디비랑 같이 묶으면 개발 하실때도 복잡해지실듯 하고...
저는 게시판 스킨에 기능 추가해서 사용하기는 하는데 대부분 확장변수로 특정값들을 입력 받을때 활용을 하는 형태네요.
스킨별로 처리되긴 무리일듯 싶고, 관리자페이지나 게시판 설정에서 처리를 하시는 형태가 되게 하시는게 좋지 않을까 생각을 해봅니다.
말씀하신대로 모듈별로 엑셀 모듈 사용여부를 설정하고 스킨에서는 수동적으로 버튼을 삽입하는 방식이 좋을 것 같네요.
좋은 말씀 감사합니다 :)
제 기술력으로는 ㅎㅎㅎ
그렇게 하려면 서버에서 특별한 설정이 있어야 한다든가 해야 하나요?
PHPSpreadsheet 사용하면 메모리 초과로 뻗습니다. XLSXWriter는 괜찮아요. 이건 xls가 아닌 xlsx 포맷만 지원하는데, xlsx 포맷이 나온 지 15년이 넘었으니 이젠 상관없겠죠~