Как удалить ключи массива при экспорте с помощью Mattwebsite excel? - PullRequest
0 голосов
/ 05 июня 2018

Я экспортирую данные в Excel, используя Maatwebsite excel.Я использую Laravel Framework.Мой массив выглядит так: -

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 голосов
/ 05 июня 2018

Наконец-то я это сделал.Надеюсь, в будущем это поможет другим.Необходимо передать false в функции FromArray.

$sheet->fromArray($data); to $sheet->fromArray($detailArray, null, 'A1', false, false);
0 голосов
/ 05 июня 2018

может быть, вам нужно сделать что-то подобное с выводом запроса, чтобы он не мог использовать какие-либо ключи при экспорте

$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');  

Могу ли я надеяться, что этот запрос и исходный код помогут вам решить вашипроблема, и вы также можете написать запрос в соответствии с вашим требованием, я написал его для своей цели решения проблемы, и да, это рабочий код, так что вы можете свободно реализовывать этот код.

0 голосов
/ 05 июня 2018

Откройте файл конфигурации excel и в массиве export измените значение generate_heading_by_indices на false.Это должно удалить используемые индексы заголовков, потому что это означает использование имен атрибутов или индексов массива в качестве заголовков.

enter image description here

NB: Это для "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

Примечание: я не проверял это.

...