>백엔드 개발 >PHP 튜토리얼 >PHP 처리 Excel 단계 소개

PHP 처리 Excel 단계 소개

巴扎黑
巴扎黑원래의
2016-11-08 10:05:211286검색

PHP 처리 Excel 단계 소개
문제 발생
일상 업무에서 데이터베이스 테이블을 Excel로 내보내거나 Excel을 데이터베이스 테이블로 가져와야 하는 경우가 종종 있습니다. 이 요구 사항은 오래 전에 실현되었으며, 수출입을 용이하게 하기 위해 Brothers www.lampbrother.net에서는 이를 기록으로 두 가지 방법으로 나누었습니다.
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 테스트 문서")
                                                                         > );
                                                                                     $ key2 => $value2) {
$objPHPExcel->setActiveSheetIndex(0)->setCellValue( Cell::stringFromColum nIndex ($i).($num), $value2);
                                            et()->setTitle ($name);
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment;filename={$name}.xls"); > header('Cache-Control: 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');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output')

}
가져오기 Excel

마찬가지로 Excel 가져오기는 실제로 Excel 데이터를 2차원 배열로 변환하는 것이며, 이를 위해서는 Excel이 형식을 준수해야 합니다.
함수 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::columnIndexFromString($highestColumn);//总列数 
        $row = 1; 
        $curr = 배열(); 
        while ($row             for ($col = 0; $col                $value = str_replace(array("n", "nr" , "r"), "", $objWorksheet->getCellByColumnAndRow($col, $row)->getValue()); 
                $curr[$row][] = $value; 
            } 
            $row++; 
        } 
        array_shift($curr);//第一行一般是字段name(Excel中列的标题) ,导入时要移除 
        return $curr; 


其他 
导出时保存的格式是xlsx,想要改成其他格式需要传入不同参数。
导入时如果에는 더 많은 시트가 있습니다.打开时는 要导入的sheet页(以保证当前sheet为activeSheet)关闭,或者根据sheetname은 程序中选择sheet입니다.

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