>백엔드 개발 >PHP 튜토리얼 >PHP에서 Excel 파일을 생성하고 읽는 방법

PHP에서 Excel 파일을 생성하고 읽는 방법

墨辰丷
墨辰丷원래의
2018-06-01 09:23:441774검색

보고서 생성 및 읽기는 웹사이트 관리 배경에서 자주 사용됩니다. CSV 및 Excel은 일반적으로 사용되는 보고서 형식입니다. 이 기사에서는 PHP에서 Excel 파일을 생성하고 읽는 방법을 소개합니다. .

웹사이트에서 테이블이 생성되는 경우가 많습니다. CSV와 Excel은 모두 비교적 간단한 형식입니다. 궁금한 사항이 있으시면 몇 가지 CSV 예제를 차례로 게시하겠습니다. 그리고 엑셀 파일을 읽어보세요.

다음 함수를 실행하려면 먼저 클래스 라이브러리를 도입해야 합니다: PHPExcel. PHPExcel은 Excel 2007, PDF 형식, HTML 형식 등과 같은 다양한 파일 형식을 읽고 쓰는 데 사용되는 강력한 PHP 클래스 라이브러리입니다. 클래스 라이브러리는 Microsoft의 OpenXML 및 PHP를 기반으로 하며 통합 문서, 글꼴 스타일, 그림, 테두리 등을 설정하는 등 Excel에 대한 강력한 지원을 제공합니다. Excel 파일을 읽고 쓰는 방법을 살펴보겠습니다.

먼저 살펴보겠습니다. 엑셀 파일 생성 방법:

아래 코드의 arrayToExcel 함수의 기능은 2차원 배열의 데이터로부터 엑셀 파일을 생성하여 서버에 저장하는 것입니다.

require_once 'Classes/PHPExcel/Reader/Excel2007.php';
require_once 'Classes/PHPExcel/Reader/Excel5.php';
include 'Classes/PHPExcel/IOFactory.php';
function arrayToExcel($data){
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle('firstsheet');
$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(10);
//add data
$i = 2;
foreach ($data as $line){
$objPHPExcel->getActiveSheet()->setCellValue('A'.$i, $line['From']);
$objPHPExcel->getActiveSheet()->getCell('A'.$i)->setDataType('n');
$objPHPExcel->getActiveSheet()->setCellValue('B'.$i, $line['To']);
$objPHPExcel->getActiveSheet()->getCell('B'.$i)->setDataType('n');
$i++;
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$file = 'excel.xls';
$objWriter->save($file);
}

서버에 저장하지 않고 생성 후 클라이언트에 직접 다운로드하고 싶은 경우에는 $objWriter-> 를 사용하는 대신 파일 출력 시 다음 코드를 추가하면 됩니다. save($file) ;

코드는 다음과 같습니다.

header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");
header('Content-Disposition:attachment;filename="excel.xls"');
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output');

Excel 파일의 내용을 읽는 예를 살펴보겠습니다.

아래 코드의 excelToArray 함수는 재정렬하는 것입니다. 엑셀의 내용을 배열로 변환합니다.

코드는 다음과 같습니다.

require_once 'Classes/PHPExcel.php';
require_once 'Classes/PHPExcel/IOFactory.php';
function excelToArray($file){
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($file);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$excelData = array();
for ($row = 2; $row <= $highestRow; ++$row) {
for ($col = 0; $col <= $highestColumnIndex; ++$col) { $excelData[$row][] = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
}
}
return $excelData;
}

간단한 방법

코드는 다음과 같습니다.

<?php
/**
 *
 * @copyright 2007-2012 Xiaoqiang.
 * @author Xiaoqiang.Wu <jamblues@gmail.com>
 * @version 1.01
 */
error_reporting(E_ALL);
date_default_timezone_set(&#39;Asia/ShangHai&#39;);
 
/** PHPExcel_IOFactory */
require_once &#39;../Classes/PHPExcel/IOFactory.php&#39;; 
// Check prerequisites
if (!file_exists("31excel5.xls")) {
  exit("not found 31excel5.xls.n");
}
$reader = PHPExcel_IOFactory::createReader(&#39;Excel5&#39;); //设置以Excel5格式(Excel97-2003工作簿)
$PHPExcel = $reader->load("31excel5.xls"); // 载入excel文件
$sheet = $PHPExcel->getSheet(0); // 读取第一??工作表
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumm = $sheet->getHighestColumn(); // 取得总列数
 
/** 循环读取每个单元格的数据 */
for ($row = 1; $row <= $highestRow; $row++){//行数是以第1行开始
  for ($column = &#39;A&#39;; $column <= $highestColumm; $column++) {//列数是以A列开始
    $dataset[] = $sheet->getCell($column.$row)->getValue();
    echo $column.$row.":".$sheet->getCell($column.$row)->getValue()."<br />";
  }
} 
?>

위의 내용은 본 내용의 전체 내용입니다. 기사, 모든 사람에게 도움이 되기를 바랍니다. 학습에 도움이 됩니다.

관련 추천 :

php 알리페이의 대면결제(QR코드 스캔 결제) 기능 구현

PHPStrom 새로운 FTP 프로젝트와 온라인 운영 그래픽 및 텍스트 설명

php 위챗 네이티브 결제(QR코드 스캔) 코드결제) 기능 구현

위 내용은 PHP에서 Excel 파일을 생성하고 읽는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.