>  기사  >  백엔드 개발  >  PHPExcel을 사용하여 테이블의 내용을 읽는 방법

PHPExcel을 사용하여 테이블의 내용을 읽는 방법

不言
不言원래의
2018-07-20 17:26:293598검색

PHPExcel을 사용하여 테이블의 내용을 읽는 방법은 무엇입니까? 더 이상 고민하지 않고 다음 기사에서는 PHPExcel에서 테이블 내용을 읽는 방법에 대해 자세히 소개합니다. first 클래스 iofactory.php

r

require_once '../PHPExcel/IOFactory.php';
$filePath = "test.xlsx";  // 测试文件
로드 테스트 파일 $ inputfiletype = phpexcel_iofactory :: 식별 ($ filepath) 파일 유형을 결정합니다. $ objreader = phpexcel_iofactory :: createreader ($ inputFileType); 인스턴스화 유형 object

$objPHPExcel = $objReader->load($filePath); 파일 로드
  1. 다음은 주로 Excel2007 및 Excel5 유형, 즉 xlsx/xlsm/xltx/xltm을 결정합니다. 및 xls/xlt 형식 파일
  2. try {
        $inputFileType = PHPExcel_IOFactory::identify($filePath);
        if ($inputFileType !== "Excel5" && $inputFileType !== "Excel2007" ) {
            unlink($filePath) && str_alert(-1,"请确保导入的文件格式正确!");
        }
        $objReader = PHPExcel_IOFactory::createReader($inputFileType);
        $objPHPExcel = $objReader->load($filePath);
    } catch(Exception $e) {
        unlink($filePath) && str_alert(-1,'加载文件发生错误:”'.pathinfo($filePath,PATHINFO_BASENAME).'”: '.$e->getMessage());
        }
  3. 현재 워크시트 가져오기

    $sheet = $objPHPExcel->getSheet(0);
    //或者
    $sheet = $objPHPExcel->getActiveSheet();
    워크시트의 행과 열 수 가져오기
  4. $highestRow = $sheet->getHighestRow();
    $highestColumn = $sheet->getHighestColumn();
  5. 참고: 때로는 테이블에 콘텐츠가 있는 행이 5개만 있는데 $highestRow가 얻어지는 경우가 있습니다. 7, 8개 이상의 행이 있는 경우 양식을 조작할 때 실수로 다른 행을 클릭했기 때문일 수 있습니다. 내용이 채워져 있지 않더라도 getHighestRow는 행 수를 확인할 수도 있습니다. 콘텐츠에는 getHighestDataRow 및 getHighestDataColumn을 사용해야 합니다.

    소스 코드 주석에는 데이터가 포함된 가장 높은 행 번호, 즉 데이터가 포함된 문자열의 가장 높은 행 번호라는 문자열이 소개됩니다.

  6. 셀의 특정 내용

xlsx 유형 테이블 셀은 유사한 xy축 좌표로 결정됩니다.

 $sheet->getCell("A1")->getValue();
 $sheet->getCell("B2")->getValue();

와 같은 방법을 통해 해당 위치의 내용을 얻을 수 있습니다.

문자를 통해 탐색하여 얻는 것을 원하지 않으면 숫자 인덱스 방법을 사용할 수 있습니다

  $sheet->getCellByColumnAndRow(0,1);
  $sheet->getCellByColumnAndRow(1,2);

좌표의 첫 번째 매개변수는 0에서 시작하고, 0은 A를 나타내고, 1은 B를 나타내고, 두 번째 매개변수는 1에서 시작합니다.
다음은 모든 셀 내용을 얻기 위해 테이블을 순회하는 것입니다.
$dataSet=array();
for ($column = "A"; $column <= $highestColumn; $column++) {//列数是以A列开始
    for ($row = 4; $row <= $highestRow; $row++) { //行数是以第4行开始
        $cell = $sheet->getCell($column . $row)->getValue();
        if($cell instanceof PHPExcel_RichText) { //富文本转换字符串
            $cell = $cell->__toString();
        }
        $dataSet[$row][] = $cell;
    }
}

중에서 서식 있는 텍스트 변환 문자열은 $cell 인스턴스of PHPExcel_RichText를 사용하여 서식 있는 텍스트인지 확인하는 것입니다. 셀의 문자열에 두 개 이상의 글꼴이 포함되어 있으면 자동으로 서식 있는 텍스트로 설정된다는 정보를 확인하세요. 이번에는 병합된 셀이 왼쪽 상단에 있는지 확인하려면 __toString() 변환

이 필요합니다

루프를 통해 모든 셀을 출력할 때 셀을 병합한 후 일부 병합된 셀의 왼쪽 상단 좌표만

예를 들어 A4와 A5는 하나의 셀로 병합됩니다. getCell("A4")에는 일반 콘텐츠가 있지만 getCell("A5")은 null입니다.

isMergeRangeValueCell을 사용하여 특정 셀이 셀은 왼쪽 상단입니다

$sheet->getCell('A' . $row)->isMergeRangeValueCell()
$row가 4이면 true, 5이면 false를 반환합니다


Conversion time

Get 테이블의 시간 형식 내용을 변환하려면 PHPExcel_Shared_Date::ExcelToPHP()가 필요합니다. PHP에서 인식할 수 있는 시간 형식으로 변환

date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($sometime);

관련 권장 사항:


phpexcel에서 Excel 테이블 시간을 읽는 예

PHPExcel은 Excel 테이블을 올바르게 읽습니다. 시간 셀

위 내용은 PHPExcel을 사용하여 테이블의 내용을 읽는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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