laravel导出Excel

这篇博客介绍了如何在Laravel中实现Excel的导入和导出。首先,通过Input::file()获取上传的Excel文件并保存,然后利用Excel库加载文件获取数据,将数据保存到数据库。接着,展示了如何在闭包函数中处理Excel数据,并将其导出为新的Excel文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

听说PHP导入导出Excel时,一般不会使用PHP自带的Excel功能,而是使用框架里面的。

以下是对于laravel导入导出Excel的简单使用介绍。

以“导入Excel表,把表里的信息保存到数据库,再把表里的信息以Excel格式导出“为例子:

在namespace下加一句use Excel;

1、导入Excel文件,那就必须先上传Excel文件,一般是前端传递的方式或直接打开文件,

$file = Input::file("file_name"); //获取前端传递进来的Excel文件,用Inpu::file()t时需添加use Illuminate\Support\Facades\Input;

直接打开文件的话使用file_get_contents("path"),大概……此时得到是文件的字符串,需转成数组格式。


2、使用$file = Input::file("file_name"); 获取到Excel文件后,需要把文件保存起来。

$entension = $file->getClientOriginalExtension(); //上传文件的后缀
$tabl_name = date('YmdHis') . mt_rand(100, 999); //命名用,可无视
$newName = iconv('UTF-8', 'GBK', $tabl_name) . '.' . $entension;//命名用,可无视
$move_file = $file->move(base_path() . '/public/excel/', $newName); 移动文件,也就是把文件保存起来
$new_path = base_path() . '/public/excel/' . $newName; 获取保存好文件的路径

如果以上方法报错,那就用别的方式保存文件,最重要是要获取保存后文件的路径


3、获取Excel表里面的信息。

Excel::load($new_path, function ($reader) use ($new_path) {

    $reader = $reader->getSgeet(0); //获取Excel里的第几张表,0为第一张表

    unlink($new_path); //删除保存起来的Excel文件,这个看个人需求是否要删除

    $data = $reader->toArray(); //获取表中的数据,得到的是数组格式

    //此时可以对信息$data做检测判断,并保存到数据库里

    ……

});

注:获取到Excel信息之后的操作必须在闭包函数内完成,大概……


4、以Excel格式导出数据信息

要以Excel格式导出数据,这数据必须是二维数组的形式,如:

$data = array();

$data[0] = {'name','sex','age'};

$data[1] = {'tom', 'man',17};

$data[2] = {'jenny', 'women', 16};

那么导出Excel时,表里对应的是

name    sex       age

tom       man       17

jenny    women   16

导出的方法

Excel::create('样板导出', function ($excel) use ($data) {
    $excel->sheet('biaodan1_name', function ($sheet) use ($data) {
        $sheet->rows($data);
        $sheet->setWidth(array('A' => 40, 'B' => 10)); //设置列宽
        $sheet->cell('A2:B' . count($cellData4), function ($cell) {
            $cell->setAlignment('left'); //设置字体左对齐

         });

    });

    //要导出多个表单,只需$excel->sheet多次就可以

})->export('xlsx');


导出时听说要用get方式请求,不知道原因,但能导出就行了




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值