前言

我们默认使用了phpoffice/phpspreadsheet第三方扩展包来实现Excel数据表的导入导出功能。 目前仅支持xls/xlsx文件后缀的文件导入导出。函数写在了基类,可以全局使用,分别是import export函数

导出功能

请参考后台系统管理->登录日志的导出按钮,在这里会将数据库信息进行导出操作。如果为空白数据的话,导出的xls文件可当做空白模板使用。

注意事项:导出功能默认为字段注释为表头的模式!!!

导入功能

导入功能的使用方法可以直接调用lay-upload属性,具体的代码可参考;

<button type="button" class="layui-btn layui-btn-normal" lay-upload="" data-chunk="close"
    data-url="{:url('/test/import')}" >
    <i class="layui-icon layui-icon-import"></i>{:__('导入数据')}
</button>

注意事项:导入功能如果使用lay-upload属性的话,必须要增加data-chunk="close",也就是关闭分片上传。

另外你的控制器的构造函数里,一定要实例化model; 例如以下代码;如果不进行实例化,会上传异常!

默认导入的模式为字段注释模式,你也可以在自己的控制器类增加columnType为field字段类型即可;

/**
 * 初始化方法
 * @return void
 * @throws \Exception
 */
public function __construct()
{
    parent::__construct();
    $this->model = new Admin(); // 实例化model
    $this->JumpUrl = '/admin/index';
}

当然如果你有其他的需要扩展的功能,比如你可能需要导入导出大量的数据信息,这时候可以自行开发进行分批分页导入最后再去合并Excel报个操作; 也可以不使用lay-upload属性,自行使用原生的layui的上传组件并且参考基类的导入导出函数来实现自己所需的功能!!!

最后更新时间:2023-08-03 15:49:011665
https://doc.swiftadmin.net/help/106.html