一、安装
使用 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"
}
}
其实,在实际开发中,会遇到表格中有图片的情况,那么图片应该怎么读取呢?请看下篇文章!