Laravel Excel Export将值设置为单元格?

时间:2016-05-11 11:09:05

标签: php excel laravel-5 laravel-excel

我使用了maatwebsite excel库来导入和导出数据。 我想设置像。的单元格数据。

    A          B         C          D          E          F
1   heading1   heading2  heading3   heading4   heading5   heading6
2   data1      data2     data3      data4      data5      data6
3   data12     data22    data32     data42     data52     data62
4              data23    data33     data43     data53     
5                        data34     data44     data54
6                        data35     data45     data54
7                                   data46     data56
8                                   data47     data57
9                                   data48
10                                  data49
11                                  data50
12                                  data51

我想导出数据,我尝试了很多但不成功。

下面是我的代码。

$sheet->fromArray($dataHeading);

我使用此函数为excel文件添加值。但问题是这个函数增加了原始的价值我想要明智地增加价值。

首先,我向A添加价值,然后B等...

我无法找到任何允许我为单元格增加价值的功能。

请帮助我如何管理这个。我的数据像php数组一样。

array(
   'heading1' => array(
       'data1','data12'
    ),
    'heading2' => array(
        'data2','data22','data23'
    ),
    'heading3' => array(
        'data3','data32','data33','data34','data35'
    ),
    'heading4' => array(
        'data4','data42','data43','data44','data45','data46','data47','data47','data49','data50','data51'
    ),
    'heading5' => array(
         'data5','data52','data53','data54','data56','data57'
    ),
    'heading6' => array(
         'data6','data62'
    )
)

如何将此数组输入excel文件。如果我需要改变数组,请建议我。我能够改变我的阵列。

由于

2 个答案:

答案 0 :(得分:2)

不确定它是否解决了您的问题,但看到标题,有些人试图设置单个单元格的值可能最终会在这里结束:)

没有记录,但查看源代码我发现它是可能的:

$sheet->setCellValue('A1', 'some value');

$sheet->cell('A1', function($cell) {
    $cell->setValue('some value');
});

有点偏离主题,但我希望无论如何它会帮助一些人。

答案 1 :(得分:1)

使用此函数并在最后更改文件(xls,csv等)的扩展名,您将获得具有正确数据的所需文件。

public function exportCSV(Request $request){
    $data = array();
    $messageemail           =   '';
    $data['usertotal']      =   User::select('name','email','mobile')->orderBy('name','ASC')->get();
    $data['total-user']     =   array();
    $percounting            =   0;
        foreach($data['usertotal'] as $datanew){
            $data['total-user'][$percounting]['email']                  = $datanew->email;
            $data['total-user'][$percounting]['mobile']                 = $datanew->mobile;
            $data['total-user'][$percounting]['name']                   = $datanew->name;
            $percounting++;
        }
        /* Start Exporting Data */
        Excel::create(time(), function($excel) use($data) {
             $excel->sheet('Sheetname', function($sheet) use($data) {
             $datasheet = array();
             $datasheet[0]  =   array('email','mobile','fullname');
             $i=1;
             foreach($data['total-user'] as $datanew){
                        $datasheet[$i] = array( @$datanew['email'],
                        $datanew['mobile'],  
                        $datanew['name'],
                    );
                $i++;
             }
            $sheet->fromArray($datasheet);
            });

        })->export('xls');

    return Redirect::back();


}

注意:此功能是maatwebsite包所必需的。如果您不想使用此软件包,那么您也可以通过核心php库执行此操作。