php使用PhpSpreadsheet导入Excel表格

一、安装

使用 composer 将 PhpSpreadsheet 安装到项目中。

composer require phpoffice/phpspreadsheet

二、导入

1、实例化读取类

// 文件格式是 xlsx 文件
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
// 文件格式是 xls 文件
$objReader = PHPExcel_IOFactory::createReader('Excel5');
// 自动获取文件类型
$file_type = \PhpOffice\PhpSpreadsheet\IOFactory::identify('1.xlsx');

2、读取文件

$file = 'excelfile.xlsx';
$objPHPExcel = $objReader->load($file);

3、获取工作簿

// 获取活动工作薄
$sheet = $spreadsheet->getActiveSheet();

//获取第index个工作表
$sheet = $excel->getSheet(index);

4、获取单元格的值

// 获取总行数
$total_rows = $sheet->getHighestRow();
// 获取总列数
$total_columns = $sheet->getHighestColumn();

//获取所有内容并转化为数组
$data = $sheet->toArray();
//获取单元格A1的值
$value = $sheet->getCell("A1")->getValue();

5、时间格式转换

//将A2单元格的时间格式转化为 Unix 时间戳
$time = \PHPExcel_Shared_Date::ExcelToPHP($sheet->getCell("A2")->getValue());

三、实例

部分代码

	public function readexcel()
	{
		$file = ROOT_PATH . 'public/excel/1.xlsx';

	 	// 自动获取文件类型
		$file_type = \PhpOffice\PhpSpreadsheet\IOFactory::identify($file);
		// 创建读操作
		if($file_type == 'Xlsx'){
	    	$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
		} else {
			$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xls');
		}
		
	    // 打开文件、载入excel表格
	    $spreadsheet = $reader->load($file);
	 
	    // 获取活动工作薄
	    $sheet = $spreadsheet->getActiveSheet();
	 	

		//获取所有内容并转化为数组
		$data = $sheet->toArray();
		dump($data);
	}

导入excel文件其实就是实现批量添加数据的功能,下面可以按自己的需求将数据插入数据库。
获取的数据如下:

		array(4) {
			  [0] => array(4) {
			    [0] => string(2) "ID"
			    [1] => string(6) "姓名"
			    [2] => string(6) "年龄"
			    [3] => string(6) "身高"
			  }
			  [1] => array(4) {
			    [0] => int(1)
			    [1] => string(9) "欧阳克"
			    [2] => string(5) "18岁"
			    [3] => string(5) "188cm"
			  }
			  [2] => array(4) {
			    [0] => int(2)
			    [1] => string(6) "黄蓉"
			    [2] => string(5) "17岁"
			    [3] => string(5) "165cm"
			  }
			  [3] => array(4) {
			    [0] => NULL
			    [1] => string(6) "郭靖"
			    [2] => string(5) "21岁"
			    [3] => string(5) "180cm"
			  }
			}

其实,在实际开发中,会遇到表格中有图片的情况,那么图片应该怎么读取呢?请看下篇文章!

你可能感兴趣的:(php,php,excel,导入文件,PhpSpreadsheet,PhpOffice)