基于 phpspreadsheet 的 Excel 导入导出 [ 2.0 版本 ]
yii2 excel 导入,导出扩展,
本扩展基于phpexcel的升级版本 phpspreadsheet.
主要有以下功能:
导出
- 基于activeDataPrivoder生成Excel
- 基于ActiveRecrod生成Excel
- 基于二维数组生成 Excel
- 模型中定义show(),可对输出值进行转换
- 指定导出字段
- 支持导出model的关联数据
- 自定义输出版本
导入
- 直接生成ActiveRecrod的模型
- 按表头生成数组
- 指定表头位置
- 可按模型attribute导入
- 按attributeLabel中文导入
安装
您可以通过 composer 安装.
本项目在github的地址是http://github.com/ciniran/yii2-excel
运行
php composer.phar require --prefer-dist ciniran/yii2-excel "*"
or add
"ciniran/yii2-excel": "*"
to the require section of your composer.json
file.
用法
下面是一些简单示例:
DataPrivoder to excel:
$dataPrivoder = new ActiveDataProvider([
'query' => User::find(),
]);
$excel = new SaveExcel([
'dataProvider' => $dataPrivoder,
//'show' => true, //是否对值进行转换
'fields' => 'email,username', //or ['email,username'] 限制导出的列
'format' => SaveExcel::XLXS, 输出版本
'all' => true, //导出全部数据
'relation' => false, //模型关系数据
]);
$excel->dataProviderToExcel();
ActiveRecord to excel:
$models = User::find()->all();
$excel = new SaveExcel([
'models' => $models,
// 'show' => true,
]);
$excel->modelsToExcel();
Array to excel
$array = [
[
'name'=>'tom',
'age'=>18,
],
[
'name'=>'jerry',
'age'=>19,
],
];
$excel = new SaveExcel([
'array' => $array,
'headerDataArray' => ['name', 'age'],
]);
$excel->arrayToExcel();
Read excel file to array
$path = 'user.xlsx';
$excel = new ReadExcel([
'path' => $path,
'head' => true,
'headLine' => 1,
]);
$data = $excel->getArray();
Read excel file to models
$path = 'user.xlsx';
$excel = new ReadExcel([
'path' => $path,
'head' => true,
'headLine' => 1,
'class' => 'common\\models\\User',
'useLabel' => true,
]);
$models = $excel->getModels();
ciniran
注册时间:2017-10-31
最后登录:2020-07-22
在线时长:10小时47分
最后登录:2020-07-22
在线时长:10小时47分
- 粉丝2
- 金钱340
- 威望30
- 积分740
共 3 条评论
关于Array to excel这个示例中,建议在:$excel = new SaveExcel([
'array' => $array, 'headerDataArray' => ['name', 'age'], ]); $excel->arrayToExcel();
中,headerDataArray这个数组中设置成:['name'=>'姓名', 'age'=>'年龄'],然后在列头上显示中文,而不是英文,这样的话,方便导出的列显示为中文汉字哈
果断收藏 加星
厉害啦http://www.iis7.com/b/yqlj/