问题描述
我正在尝试从 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 打印它的方式:
我想打印的方式是:
但我不知道如何实现这一点。有人能帮我解决这个问题吗?
//编辑//
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;