【问题标题】:Laravel Excel Export set value to cell?Laravel Excel导出设置值到单元格?
【发布时间】:2016-05-11 11:09:04
【问题描述】:

我使用 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 文件中。如果我需要更改数组,请建议我。我可以更改我的数组。

谢谢

【问题讨论】:

    标签: php excel laravel-5 laravel-excel


    【解决方案1】:

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

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

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

    或

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

    有点离题,但我希望它对某些人有所帮助。

    【讨论】:

    • 我使用 get_class_methods($object) 来查找可用的函数以获取 setCellValue。
    【解决方案2】:

    最后使用此功能并更改文件的扩展名(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 库来做到这一点。

    【讨论】:

    • 对不起,这段代码对我不起作用,谢谢。假设我有 10 个手机号码和 5 个电子邮件地址和 3 个姓名,现在您的功能正在运行而没有任何错误?
    • 当然这个功能很好用,因为我在 2 年前创建了这个功能,并且一直使用到现在。如果此功能不适合您,那么您必须检查您的代码。如果您无法执行此操作,请将代码和数据库发送到我的电子邮件地址。
    • 请将我的数组存储到$data['usertotal'],然后检查我是否有错误。
    猜你喜欢
    • 1970-01-01
    • 2017-02-22
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 2012-12-06
    相关资源
    最近更新 更多