如何在使用Mattwebsite excel导出时删除数组键?

时间:2018-06-05 10:16:43

标签: php excel laravel laravel-5 maatwebsite-excel

我使用Maatwebsite excel将数据导出到excel。我正在使用laravel框架。我的阵列看起来像这样: -

Array
(
[0] => Array
    (
        [0] => Name
        [1] => Salary
        [2] => Age
        [3] => Gender
    )

[1] => Array
    (
        [0] => Kunal
        [1] => 12000
        [2] => 15
        [3] => M
    )

[2] => Array
    (
        [0] => Kunal
        [1] => 16000
        [2] => 17
        [3] => m
    )
)
that is saved in this variable $detailArray

我的导出功能如下所示: -

Excel::create("Test", function($excel) use($detailArray) {
        $excel->sheet('Sheet', function($sheet) use($detailArray) {
            $sheet->fromArray($detailArray, null, 'A1', true);
        });
    })->export('xls');

现在当我导出excel时,它看起来像这样: - enter image description here

现在我想删除0,1,2,3这些键,如图所示。 请帮我解决这个问题。谢谢。

3 个答案:

答案 0 :(得分:1)

最后我做到了这一点。希望将来它会帮助别人。需要在FromArray函数中传递false。

$sheet->fromArray($data); to $sheet->fromArray($detailArray, null, 'A1', false, false);

答案 1 :(得分:0)

打开配置文件excel,在export数组下,将generate_heading_by_indices更改为false。这应该删除使用的标题索引,因为它表示使用属性名称或数组的索引作为标题。

enter image description here

  

注意:这是"maatwebsite/excel": "~2.1.0"

由于您要删除array keys for tis function not for all exporting functions,您可以执行

config(['excel.export.generate_heading_by_indices' => false]);
//my other export functions below
  

注意:我没有测试过这个。

答案 2 :(得分:0)

您可能需要使用查询输出执行此类操作,以便在导出时无法使用任何类型的键

$tableData = TableListMember::select(DB::RAW('IF(tbl_tablelist_members.member_type = "m","Team Member","Candidate") as UserType,tbl_tablelist.tablelist_name as TableName, tbl_event.event_code as Weekend, IF(tbl_tablelist_members.member_type = "m", users.first_name, tbl_candidates.first_name) as FirstName, IF(tbl_tablelist_members.member_type = "m", users.last_name, tbl_candidates.last_name) as LastName, tbl_user_roll.st_roll_name as Role, IF(tbl_tablelist_members.member_type = "m", users.address, tbl_candidates.address) as Address, IF(tbl_tablelist_members.member_type = "m", tbl_state_county.county, tbl_state_county.county) as County, IF(tbl_tablelist_members.member_type = "m", users.phone_no, tbl_candidates.phone_no) as Phone, IF(tbl_tablelist_members.member_type = "m", users.email, tbl_candidates.email) as Email, IF(tbl_tablelist_members.member_type = "m", users.church, tbl_candidates.church) as Church, IF(tbl_tablelist_members.member_type = "m", users.music, "") as Music, IF(tbl_tablelist_members.member_type = "m", IF(users.reunion_group = 0 ,"No","Yes"), "") as Reunion_Group'))
        ->leftjoin('tbl_tablelist','tbl_tablelist.tablelist_id','tbl_tablelist_members.tablelist_id')
        ->leftjoin('tbl_event','tbl_event.id','tbl_tablelist.event_id')
        ->leftjoin('tbl_user_roll','tbl_user_roll.id','tbl_tablelist_members.role')
        ->leftjoin('users','users.id','tbl_tablelist_members.member_candidate_id')
        ->leftjoin('tbl_candidates','tbl_candidates.id','tbl_tablelist_members.member_candidate_id')
        ->leftjoin('tbl_state_county','tbl_state_county.id','tbl_candidates.county_id')

        ->where(DB::RAW('event_id'), $request->id)->orderBy('tbl_tablelist.tablelist_id','ASC')->orderBy('tbl_tablelist_members.displayorder')->get()->toArray();
        // dd($tableData[0]);
        return Excel::create('TableList ',function($excel) use ($tableData) {
            $excel->sheet('mySheet', function($sheet) use ($tableData) {
            $sheet->fromArray($tableData);
            });
        })->download('csv');  

我希望这个查询和源代码可以帮助您解决问题 你也可以根据你的要求编写查询,我已经为了解决问题的目的编写了查询,是的,它是工作代码所以你可以自由地实现这个代码。

相关问题