php spreadsheet 이용오류

php spreadsheet 이용오류

QA

php spreadsheet 이용오류

본문

php spreadsheet 를 이용하여 엑셀 파일을 읽고 작성하려고 합니다. ㅠㅠ 근데 

 

use PhpOffice\PhpSpreadsheet\Spreadsheet; 이부분에서 오류가 나는데 이유를 모르겠습니다...ㅠㅠ 

 

require은 $_SERVER[도큐먼트 루트] 도사용해보고

  require "../phpoffice_phpspreadsheet_1.10.1.0_require/vendor/autoload.php"; 요런식으로도 가져와 보았으며 폴더들은 정상적으로 위치해 있습니다 ㅠㅠ 왜 여기에 오류가 난걸까요 ㅠ 

아래는 코드이며 사진도 함께 첨부하겠습니다. 


session_start();
 
require "../phpoffice_phpspreadsheet_1.10.1.0_require/vendor/autoload.php";
include_once 'db_conn.php';
if ($_POST['hidden_code'] == 3) {
 
session_start();

 
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
 
$server_inputFileName=$_FILES['inputFileName']['tmp_name'];
 
$pc_FileName = $_FILES['inputFileName']['name'];
$file_type= pathinfo($pc_FileName, PATHINFO_EXTENSION);
 
if ($server_inputFileName) {
   
    /** Create a new Excel File Reader  **/
    if ($file_type =='xls') {
        $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();  
    }
    elseif ($file_type =='xlsx') {
        $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
    }
    else {
        echo '처리할 수 있는 엑셀 파일이 아닙니다';
        exit;
    }
 
    //    확장자에 따른 설정 구분
    //    $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xml();
    //    $reader = new \PhpOffice\PhpSpreadsheet\Reader\Ods();
    //    $reader = new \PhpOffice\PhpSpreadsheet\Reader\Slk();
    //    $reader = new \PhpOffice\PhpSpreadsheet\Reader\Gnumeric();
    //    $reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
   
    /** Load $server_inputFileName to a Spreadsheet Object  **/
    $spreadsheet = $reader->load($server_inputFileName);
   
    $spreadData = $spreadsheet-> getActiveSheet()->toArray();
   
    $rows=count($spreadData);
    $cols=(count($spreadData,1)/count($spreadData))-1;
   
    echo '<table border="1" style="width:100%">';  
    for ($i=0;$i<$rows;$i++) {
        echo '<tr>';
        for ($j=0;$j<$cols;$j++) {          
            if ($j==1 and $i>0) {
                echo '<td nowrap>'.$spreadData[$i][$j].'</td>';
            } else {
                echo '<td nowrap align="center">'.$spreadData[$i][$j].'</td>';
            }
        }
        echo '</tr>';      
    }  
    echo '</table>';

 

3696776125_1636016230.009.png

 

3696776125_1636016320.532.png

이 질문에 댓글 쓰기 :

답변 1

require "../phpoffice_phpspreadsheet_1.10.1.0_require/vendor/autoload.php";

이부분은 아무래도 폴더명을 다시 한번 짧게해서 써주세요 

phpspreadsheet 라고 하시던지.. 너무 길어서 헷갈릴수있구요 그리고 외부에 ../ 경로가 맞는지도 확인해보세요

폴더가 있는지.. 루트 외부에 폴더가 있는지를..

모두다 확인해봤구 ㅠㅠ 그 vscode ../ 쓰면 해당 폴더에 어떤걸 참조할 수 있는지 나오거든요.. 제가 작성한게아니라 그거로도 해보았구요,... 왜 use 가안될까요 흑

require 를 했을때 임포트는 됐다고 하는거죠? 그럼 require_once 로 바꿔주세요
use 같은경우는 앞에 백슬래시를 추가해보세요


use \PhpOffice\PhpSpreadsheet\Spreadsheet;

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

회원로그인

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