【无标题】

PHP读取excel

if (!function_exists('read_excel')) {
    /**
     * 读取excel
     * @return array
     */
    function read_excel($filename,$pValue = true)
    {
        try {
            vendor('PHPExcel.PHPExcel');
            //兼容2003和2007版本
            $objReader = PHPExcel_IOFactory::createReader('Excel5');
            if (!$objReader->canRead($filename)) {
                $objReader = PHPExcel_IOFactory::createReader('Excel2007');
                if (!$objReader->canRead($filename)) {
                    return false;
                }
            }

            $objReader->setReadDataOnly($pValue);

            $objPHPExcel = $objReader->load($filename);
            $objWorksheet = $objPHPExcel->getActiveSheet();
            $highestRow = $objWorksheet->getHighestRow();
            $highestColumn = $objWorksheet->getHighestColumn();
            $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
            $excelData = array();
            if ($highestRow > 50001) {
                throw new Exception('至多一次导入50000条数据');
            }
            for ($row = 1; $row <= $highestRow; $row++) {
                for ($col = 0; $col < $highestColumnIndex; $col++) {
                    $value = '';

                    //获取超链接
                    if (!$pValue) {
                        $value = $objWorksheet->getCellByColumnAndRow($col, $row)->getHyperlink()->getUrl();
                    }

                    if (!$value) {
                        $value = (string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
                    }

                    $excelData[$row][] = $value;
                }
            }
        } catch (Exception $e) {
            $msg = $e->getLine() . ' ' . $e->getMessage() . ' ' . $e->getFile();
            return $msg;
        }
        return $excelData;
    }
}

你可能感兴趣的:(php)