본문 바로가기
PHP

PHP 엑셀 서버 업로드 - 배열 엑셀 저장

by 준토리73 2021. 2. 15.

파일 업로드에 이어,

데이터를 엑셀로 만들어서 서버에 업로드 하는 방법에 대해서 정리해볼게요.

 

1. PHPExcel 라이브러리 다운로드 

http://www.codeplex.com/PHPExcel

 

CodePlex Archive

An archive of the CodePlex open source hosting site

archive.codeplex.com

요기에 들어가서 

download archive 눌러서 다운로드

 

 

 

 

다운받은 PHPExcel을 압축을 풀어서 서버 폴더에 저장

 

2. excel.php에 엑셀 만들기 코드 

excel.php 를 하나 만들어서 

require_once ($_SERVER ['DOCUMENT_ROOT']."/PHPExcel/Classes/PHPExcel.php");

서버경로로 require 시켜주고,

 

  •  엑셀에 저장할 array 선언
$arrCase = array(
                "material_grp"       => "PF"
                ,"material_grp_1"    => "Q"
                ,"vendor_cd"         => "B01M"
                ,"item_cd"           => "src_code"
                ,"item_nm"           => "prdt_nm"
                ,"standard_nm"       => "prdt_stand_nm"
                ,"prdt_date"         => "2021-02-15"
                ,"lot_no"            => "CR1234"
                ,"prdt_no_1"         => "23232"
                ,"pack_no"           => "F"
                ,"case_no"           => "45"
                ,"box_no"            => ""
                ,"vendor_site"       => "KD"
                ,"quantity"          => "case_per_cnt"
                ,"quantity_5"        => "quantity5"
                ,"quantity_unit"     => "P"
                ,"prdt_cd"           => "prdt_code"
                ,"standard_cd"       => "prdt_stand"
                ,"color_cd"          => "prdt_color"
);
  • 엑셀로 만들어주는 함수 
$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle("sheet1"); // 시트 타이틀 
$objPHPExcel->setActiveSheetIndex(0); // 첫번째 시트로 지정

$file = 'basicExcel.xls'; // 파일명 정하기 

header("Content-Type:text/html;charset=utf-8"); // 한글깨짐 방지 
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename="."basicExcel.xls.xls"); // 현재 파일의 도큐먼트에 베이스가 되는 파일 
header('Cache-Control: max-age=0');

$objReader = PHPExcel_IOFactory::createReaderForFile($file); // 아마도 읽어와서 붙여주는 듯 ? 

$objPHPExcel = $objReader->load($file);
$a='A';
foreach($arrCase as $key => $value){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue(sprintf('%s1',$a), $key) 
->setCellValue(sprintf('%s2',$a),$value);
$a++;
}

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');

// try catch 로 문제가 발생했을 때 return 값 넣어주어야함 
$objWriter->save($_SERVER['DOCUMENT_ROOT'] . "/lblExcel/LabelFormExcel.xls");

 

  • 엑셀에 배열의 key, value 값 저장해주는 방법 
더보기

$a='A';
foreach($arrCase as $key => $value){
  $objPHPExcel->setActiveSheetIndex(0)->setCellValue(sprintf('%s1',$a), $key) // A1, B1, ...
                                                  ->setCellValue(sprintf('%s2',$a),$value); // A2, B2, ...
  $a++;
}

  • sprintf : 형식화한 문자열을 반환

cf) printf : 형식화한 문자열을 출력 

 

 


3. 업로드 확인 

그러고 해당 로컬로 excel.php 파일 들어가서 새로고침 누르면,

엑셀 파일이 다운로드 되고, 

서버 경로에 엑셀 파일이 저장되어있는 것을 확인할 수 있음! 

서버경로에 엑셀 파일이 저장됨
각 셀에 배열이 저장돼있는 것을 확인할 수 있음 

 

참고한 링크들)

 

phpexcel을 이용한 PHP로 엑셀파일 읽기와 생성

프로그래밍을 하다보면 종종 엑셀 파일을 읽어야 하거나, 생성해야 하는 일이 생긴다.이를 해결하기 위한 ...

blog.naver.com

 

 

[PHP] PHPExcel 라이브러리 설치 및 엑셀 출력하기

■ PHPExcel 라이브러리 설치하기 01. https://github.com/PHPOffice/PHPExcel 사이트에 접속하여 PHP Excel 라이브러리 파일을 다운받자. 02. 다운받은 파일의 압축을 해제한다. ■ PHPExcel 라이브러리 Excel..

wickedmagic.tistory.com

 

 

[PHP] for문 알파벳 순서로 출력

ord(); — string에서 첫번째 문자의 아스키 값을 반환합니다. chr(); — ascii에 지정한 문자를...

blog.naver.com

 

댓글