微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用数组数据格式化 Excel Laravel

如何解决使用数组数据格式化 Excel Laravel

我正在尝试从 laravel 控制器编写一个 excel,其中我将所有数据都放在一个数组中,并且我设法编写了它,但是我现在必须对其进行格式化,这是我拥有的数组:

>
[2020-12-30 13:22:05] local.DEBUG: array (
  0 => 
  array (
    0 => '1',1 => '2',),1 => 
  array (
    0 => 'Test Name 1',1 => 'Test Name 2',2 => 
  array (
    0 => 'user',1 => 'user2',3 => 
  array (
    0 => '1',) 

这是我创建 Excel 的方式:

Excel::create('Filename',function($excel) use ($budgets) {

            $excel->sheet('Sheetname',function($sheet) use ($budgets) { //$budgets is the array i'm printing on Log

                $sheet->fromArray($budgets);

            });

        })->export('xls');

这是我的 excel 打印它的方式:

1 2
测试名称 1 测试名称 2
user1 user2
1 2

我想打印的方式是:

代码 姓名 用户 数量
1 测试名称 1 user1 1
2 测试名称 2 user2 2

但我不知道如何实现这一点。有人能帮我解决这个问题吗?

//编辑//

I added some code to re estructure the array,Now i have this:

$users = ['Code','Name','User','Number'];
        for ($i=0; $i<count($code); $i++){
            array_push($users,array($code[$i],$name[$i],$user[$i],$number[$i]));
        }
        
        Log::debug($users);

这是日志:

[2020-12-30 15:17:40] local.DEBUG: array (
  0 => 'Code',1 => 'Name',2 => 'User',3 => 'Number',4 => 
  array (
    0 => '1',1 => 'Test Name 1',2 => 'user1',3 => '1',5 => 
  array (
    0 => '2',2 => 'user2',3 => '2',) 

但我收到此错误

[message] => Row `Code` must be array.
            [class] => PHPExcel_Exception

解决方法

您将可以重新构建您的数组。 要获得您想要的打印,数组应如下所示:

$budget = [
    ['Code','Name','User','Number'],[1,'Test Name 1','user1',1],...
];
,

好的,我设法重新构造了数组并按照我想要的方式获取 Excel:

public function generateExcel(Request $request)
    {
        $code = $request->input('code');
        $name = $request->input('name');
        $user = $request->input('user');
        $number = $request->input('number');

        $users = array();
        array_push($users,array('Code','Number'));
        for ($i=0; $i<count($code); $i++){
            array_push($users,array($code[$i],$name[$i],$user[$i],$number[$i]));
        }
        
        
        Excel::create('Filename',function($excel) use ($users) {

            $excel->sheet('Sheetname',function($sheet) use ($users) {

                $sheet->fromArray($users);

            });

        })->export('xls');
        return true;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。