댓글 검색 목록

[php] PHPExcel / PhpSpreadsheet XLSX 파일 읽기 및 쓰기

페이지 정보

작성자 운영자 작성일 20-04-20 18:10 조회 1,724 댓글 0

PHPExcel은 데이터를 엑셀로 읽고 쓸 수 있는 매우 강력한 라이브러리입니다. 

이제 이 프로젝트는 저자 방문에 의해 보관되어 세부 사항을 볼 수 있습니다. PHPExcel은 공식적으로 PhpSpreadsheet로 알려져 있습니다. XLSX 확장명으로 Excel 파일을 만드는 방법을 알려 드리겠습니다. 

PHPExcel 또는 PhpSpreadsheet로 XLSX 파일을 읽는 방법.


설치 : PHPSpreadsheet는 Composer의 도움으로 설치할 수 있습니다.

터미널에서 : 터미널에서 다음 명령을 실행하여 PHPSpreadsheet를 설치하십시오.



composer require phpoffice/phpspreadsheet


PhpSpreadsheet를 다운로드하여 아래와 같이 프로젝트에 추가하십시오.


<?php
require 'vendor/autoload.php';
 
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 
$spreadsheet = new Spreadsheet();


데이터 작성 및 XLSX 파일 저장 방법 


아래 예는 PhpSpreadsheet의 도움으로 XLSX 파일을 작성하는 데 사용할 수 있는 완전한 작업 예입니다.


<?php
require 'vendor/autoload.php';
 
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 
$spreadsheet = new Spreadsheet();
 
$sheet = $spreadsheet->getActiveSheet();
   
// Set the value of cell A1
$sheet->setCellValue('A1', 'A1 Cell Data Here');
$sheet->setCellValue('B1', 'B1 Cell Data Here');
    
// Write an .xlsx file 
$writer = new Xlsx($spreadsheet);
   
// Save .xlsx file to the current directory
$writer->save('lcw.xlsx');


PhpSpreadsheet에서 XLSX 파일을 읽는 방법? 


PhpSpreadsheet를 사용하여 아래 코드의 도움으로 XLSX 파일을 읽을 수 있습니다.


$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('lcw.xlsx');
 
$sheet = $spreadsheet->getActiveSheet();
 
// Store data from the activeSheet to the varibale in the form of Array
$data = array(1,$sheet->toArray(null,true,true,true));
   
// Display the sheet content
var_dump($data);


PHPExcel에서 


이전 버전의 PHPExcel을 사용하는 경우 아래 코드를 고려하여 XLSX 파일을 읽으십시오.


예제 코드. 


include_once('Excel/Classes/PHPExcel.php');
$inputFileName = 'sample.xlsx';
//Read your Excel workbook
try{
    $inputFileType  =   PHPExcel_IOFactory::identify($inputFileName);
    $objReader      =   PHPExcel_IOFactory::createReader($inputFileType);
    $objPHPExcel    =   $objReader->load($inputFileName);
}catch(Exception $e){
    die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
}
 
//  Get worksheet dimensions
$sheet = $objPHPExcel->getActiveSheet();
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
 
//  Loop through each row of the worksheet in turn
for ($row = 1; $row <= $highestRow; $row++){
    //  Read a row of data into an array
    $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row,
                                    NULL,
                                    TRUE,
                                    FALSE);
    //  Use foreach loop and insert data into Query
     
}


참고 : 위의 예에서 강조 표시된 영역을 이해해야 합니다.


$ inputFileName = 'sample.xlsx'; 이 줄은 읽으려는 Excel 파일을 나타냅니다. getSheet 메소드를 사용하여 모든 시트를 읽을 수 있습니다. PHPExcel Archive를 사용하는 경우 getActiveSheet() 메소드를 사용할 수도 있습니다.


$sheet = $objPHPExcel->getSheet(1); // Change sheet number 


이제 Excel 시트의 행과 열을 읽으면 됩니다.


FOR LOOP에서 $rowData에 저장된 모든 데이터. 이제 DB로 데이터를 덤프하면 됩니다.


이를 위해 foreach 루프를 사용하고 루프 내에서 삽입 쿼리를 사용하여 데이터를 저장하십시오. 아래 스니펫은 foreach 루프의 예입니다.

foreach($rowData as $val){
      mysqli_query('YOUR-QUERY',$connection)
}


SimpleXLSX 클래스를 사용하여 Excel 파일을 읽을 수도 있습니다. 

simpleXLSX 클래스를 다운로드하려면 여기를 클릭하십시오. 

아래 스니펫은 XLSX 파일을 읽는 간단한 예제 코드입니다.


require_once 'SimpleXLSX.php';
 
if ( $xlsx = SimpleXLSX::parse('pricelist.xlsx') ) {
  print_r( $xlsx->rows() );
} else {
  echo SimpleXLSX::parse_error();
}




댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.