导入Excel文件需要两个扩展:PHPOffice/PHPExcel和moonlandsoft/yii2-phpexcel,这两个扩展中,PHPOffice/PHPExcel是基础的Excel文件接口,moonlandsoft/yii2-phpexcel提供了导入和导出的功能。
引入PHPOffice/PHPExcel
官网地址:
下载后解压,拷贝到vendor/PHPExcel目录下,整体目录结构如下:
PHPExcel没有使用命名空间,因此需要用require来引入,代码类似如下:$vendorDir = $GLOBALS['config']['vendorPath'];
require$vendorDir . '\PHPExcel\Classes\PHPExcel.php';
注:在使用moonlandsoft/yii2-phpexcel之前,需要执行上述代码引入PHPExcel。
引入moonlandsoft/yii2-phpexcel
官网地址:
下载后解压,拷贝到vendor目录下,整体目录结构如下:
打开vendor/yiisoft/extensions.php,增加如下内容:'yii2-phpexcel' =>
array(
'name' => 'yii2-phpexcel',
'version' => '1.4.3.3',
'alias' =>
array(
'@moonland/phpexcel' => $vendorDir . '/moonland/phpexcel',
),
),
导入Excel文件
参考官网例程,如下:use\moonland\phpexcel\Excel;
$data = Excel::import('d:\log\import.xlsx',[
'setFirstRecordAsKeys' => true,
'setIndexSheetByName' => true,
'getOnlySheet' => 'sheet1',
]);
echojson_encode($data, JSON_UNESCAPED_SLASHES| JSON_UNESCAPED_UNICODE);
excel文档内容如下:
导入结果如下:[
{
"姓名": "张飞",
"性别": "男",
"生日": "01-01-17",
"家长微信号": "wx_zhangfei"
},
{
"姓名": "关羽",
"性别": "男",
"生日": "01-02-17",
"家长微信号": "wx_guanyu"
},
{
"姓名": "赵云",
"性别": "男",
"生日": "01-03-17",
"家长微信号": "wx_zhaoyun"
},
{
"姓名": "马超",
"性别": "男",
"生日": "01-04-17",
"家长微信号": "wx_machao"
}
]