phpspreadsheet 쓰기 질문

phpspreadsheet 쓰기 질문

QA

phpspreadsheet 쓰기 질문

본문

sql에 담겨있는 데이터를 엑셀파일로 쓰려고 하고 있습니다. 

 

그래서 간단하게 일단 엑셀파일을 작성하는 코드를 가져와서 작업하고 있는데 

 

 

Fatal error: Uncaught Error: Class "ZipStream\Option\Archive" not found in C:\xampp\htdocs\study\ranking_checker\php\PhpOffice\PhpSpreadsheet\Writer\Xlsx.php:508 Stack trace: #0 C:\xampp\htdocs\study\ranking_checker\php\excel_output.php(53): PhpOffice\PhpSpreadsheet\Writer\Xlsx->save('files/demo.xlsx') #1 {main} thrown in C:\xampp\htdocs\study\ranking_checker\php\PhpOffice\PhpSpreadsheet\Writer\Xlsx.php on line 508

라는 에러가 떳습니다 ㅠㅠ zipstream을 찾을수 없다는거 같은데 보니까 composer 가 없어서 그런거라고 하더라구요.. 

 

제가 cafe24에 업로드할 자료라서 composer가 없이 진행하고 있고 

 

https://duotone.co.kr/entry/composer-%EC%97%86%EB%8B%88-phpspreadsheet-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0  

 

해당 블로그를 통해서 엑셀파일을 읽어와서 웹페이지에 뿌려주는 것까지는 됬습니다.. 

그말은 컴포저가 없어도 된다는 거같은데 쓰는건 왜 안될까요 ㅠㅠ 일단 제 코드를 보여드리겠습니다. 

 


<?php
 
require_once(__DIR__ . '/PhpOffice/Psr/autoloader.php');
require_once(__DIR__ . '/PhpOffice/PhpSpreadsheet/autoloader.php');
 
ini_set("display_errors", 1);
ini_set('memory_limit', -1); // 메모리 제한을 해제해준다.

 
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 
// Creates New Spreadsheet
$spreadsheet = new Spreadsheet();
 
// Retrieve the current active worksheet
$sheet = $spreadsheet->getActiveSheet();
 
// sample data from db
// call the db get data function here
//delete line from 18 to 20 and call the db function
$data_from_db = array();
$data_from_db[0] = array("name" => "raja", "age" => 23);
$data_from_db[1] = array("name" => "raja1", "age" => 43);
 
//set column header
//set your own column header
$column_header = ["Name", "Age"];
$j = 1;
foreach ($column_header as $x_value) {
    $sheet->setCellValueByColumnAndRow($j, 1, $x_value);
    $j = $j + 1;
}
 
//set value row
for ($i = 0; $i < count($data_from_db); $i++) {
 
    //set value for indi cell
    $row = $data_from_db[$i];
 
    $j = 1;
 
    foreach ($row as $x => $x_value) {
        $sheet->setCellValueByColumnAndRow($j, $i + 2, $x_value);
        $j = $j + 1;
    }
}
 
// Write an .xlsx file  
$writer = new Xlsx($spreadsheet);
 
// Save .xlsx file to the files directory
$writer->save('files/demo.xlsx');
 
 

이 질문에 댓글 쓰기 :

답변 1

해당 폴더 퍼미션 확인해 보세요.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,680 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT