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"
			  }
			}

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值