반응형
php 7.x 버젼 부터 phpExcel 사용이 안된다길래 에러 잡다가 짜증이 나서 phpSpreadsheet로 갈아탔다 ㅎㅎ
phpSpreadsheet 는 Composer 로 설치를 해야한다. 아래 링크 참조
https://koreanred.tistory.com/141
설치된 phpSpreadsheet 이동 복사
C:\Users\아이디\vendor <== 이걸 통째로
자신의 DOCUMENT_ROOT 저는 htdocs 밑으로 통째로 복사합니다.
1. config.php 수정
$config['composer_autoload'] = 'vendor/autoload.php';
2. phpSpreadsheet 사용하기
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
이 두줄만 넣어주고 사용하면 된다.
defined('BASEPATH') OR exit('No direct script access allowed');
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
class Welcome extends CI_Controller {
// 엑셀 업로드
public function excel_upload()
{
$fileName = $_FILES['fileName']['name'];
$file_type= pathinfo($fileName, PATHINFO_EXTENSION);// 확장자
if ($file_type =='xls') {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
}
elseif ($file_type =='xlsx') {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
}
else {
echo '처리할 수 있는 엑셀 파일이 아닙니다';
exit;
}
$spreadsheet = $reader->load($upload_dir.$fileName);
$spreadData = $spreadsheet-> getActiveSheet()->toArray();
print_r($spreadData); // 배열로 가져와서 처리해준다.
}
// 엑셀 다운로드
public function download()
{
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');
$writer = new Xlsx($spreadsheet);
$filename = 'sample';
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'. $filename .'.xlsx"');
header('Cache-Control: max-age=0');
$writer->save('php://output'); // download file
}
}
다운로드가 아주 잘 된다.
phpExcel과 설치법만 다를뿐 사용법은 거의 비슷한것 같습니다.
반응형
'Codeigniter' 카테고리의 다른 글
Can't find a route for 'GET: ....'. (0) | 2024.06.12 |
---|---|
CodeIgniter4 설치 (Window) (0) | 2024.06.12 |
codeigniter 500 error 코드이그나이터 에러 해결 (0) | 2023.08.25 |
불필요한 오류 메세지 노출 안하기 (0) | 2013.02.18 |
URL에서 index.php 없애기 (0) | 2013.02.18 |