>백엔드 개발 >PHP 튜토리얼 >PHP에서 Excel을 읽고 쓰는 단계와 PHP에서 Excel을 처리하는 단계 소개

PHP에서 Excel을 읽고 쓰는 단계와 PHP에서 Excel을 처리하는 단계 소개

WBOY
WBOY원래의
2016-07-28 08:25:271344검색

PHP 처리 Excel 단계 소개
문제 발생
일상 업무에서 데이터베이스 테이블을 Excel로 내보내거나 Excel을 데이터베이스 테이블로 가져와야 하는 경우가 종종 있습니다. 이 요구 사항은 오래 전에 실현되었으며, 수출입을 용이하게 하기 위해 Brothers www.lampbrother.net에서는 이를 기록으로 두 가지 방법으로 나누었습니다.
코드 구현
phpexcel 클래스 라이브러리 참조
phpexcel은 강력한 Excel 처리 기능을 갖추고 있으며 packagist에서 수백만 번 다운로드되었지만 솔직히 Excel의 처리 속도는 여전히 매우 느립니다. 데이터 양이 많을 때는 주의하세요. packagist에서 다운로드하거나 직접 Composer를 사용하여 phpoffice/phpexcel이 필요한 경우 phpexcel을 사용할 수 있습니다.
Excel로 내보내기
대부분의 경우 Excel로 내보내는 것은 실제로 두 자리 배열을 테이블로 변환하는 것입니다.
네임스페이스 PHPExcel 사용;
/**
* @param $name string 저장할 엑셀 이름
* @param $ret_data 테이블의 2차원 배열로 변환
* @throws PHPExcel_Exception
* @throws PHPExcel_Reader_Exception
*/
function importExcel($name, $ret_data){
$objPHPExcel = new PHPExcel();
//테이블 설정
$objPHPExcel->getProperties()->setCreator($name)
->setLastModifiedBy($name)
->setTitle("Office 2007 XLSX 테스트 문서")
- > ; Setsubject ("Office 2007 XLSX 테스트 문서")
-& GT; ( 0)- >setCellValue( Cell::stringFromColumnIndex($i).($num), $value2);
                                                              $objPHPEx cel ->getActiveSheet()->setTitle($name);
헤더( '콘텐츠 유형: application/vnd.ms-excel');
header("콘텐츠 처리: 첨부;파일 이름={ $name}.xls");
header('캐시 제어: max- age=0');
header('Cache-Control: max-age=1');
header(' 마지막 수정: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: 캐시, 재검증 필수');
header('Pragma : public') // HTTP/1.0
$objWriter = PHPExcel_IOFactory::createWriter ($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
Exit;
}
Excel 가져오기
마찬가지로 Excel 가져오기는 실제로 Excel 데이터를 2차원 배열로 변환합니다. 이를 위해서는 Excel이 형식을 준수해야 합니다.
function getRows($inputFileName)
{
if (!file_exists($inputFileName)) {
throw new Exception("파일이 존재하지 않음");
}
        $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
        $objReader = PHPExcel_IOFactory::createReader($inputFileType);
        $objPHPExcel = $objReader->load($inputFileName);
        $objWorksheet = $objPHPExcel->getActiveSheet();
        $highestRow = $objWorksheet->getHighestRow();
        $highestColumn = $objWorksheet->getHighestColumn();
        $highestColumnIndex = PHPExcel_Cell::columnIndexFrom 문자열( $highestColumn);//总列数
        $row = 1;
        $curr = array();
        while ($row <= $highestRow) {
            for ($col = 0 ; $col < $highestColumnIndex; $col ) {
               $value = str_replace(array("n", "nr", "r"), "", $objWorksheet->getCellByColumnAndRow($col, $row )->getValue());
                $curr[$row][] = $value;
            }
           $row ;
        }
        array_shift($curr);//第一行一般是字段name(Excel中列的标题),导入时要移除
        return $curr;
}
其他
导take时保存的格式是xlsx,想要改成其他格式需要传入는 서로 다른 방식입니다.
더 많은 시트가 있습니다. ,或者根据sheetname 程序中选择sheet 。

以上就介绍了 php 读写 Excel php 处理 Excel 步骤介绍, 包括了 php 读写 Excel 方面的内容, 希望对 php 教程有兴趣的朋友有所帮助。

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