보고서 생성 및 읽기는 웹사이트 관리 배경에서 자주 사용됩니다. 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('Asia/ShangHai'); /** PHPExcel_IOFactory */ require_once '../Classes/PHPExcel/IOFactory.php'; // Check prerequisites if (!file_exists("31excel5.xls")) { exit("not found 31excel5.xls.n"); } $reader = PHPExcel_IOFactory::createReader('Excel5'); //设置以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 = 'A'; $column <= $highestColumm; $column++) {//列数是以A列开始 $dataset[] = $sheet->getCell($column.$row)->getValue(); echo $column.$row.":".$sheet->getCell($column.$row)->getValue()."<br />"; } } ?>
위의 내용은 본 내용의 전체 내용입니다. 기사, 모든 사람에게 도움이 되기를 바랍니다. 학습에 도움이 됩니다.
관련 권장 사항:
XSS 공격을 방지하기 위한 PHP의 HTMLPurifier
위 내용은 PHP는 excel files_php 예제를 생성하고 읽습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!