【问题标题】:How to fix LaravelExcel UTF-8 Characters如何修复 LaravelExcel UTF-8 字符
【发布时间】:2021-10-06 23:08:19
【问题描述】:

我正在使用 Laravel 5.8,我想使用 LaravelExcel 从视图中下载数据。这是我的导出类:

namespace App\Exports;

use App\Member\Student;
use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Facades\Excel;

class StudentExportView implements FromView
{
    /**
    * @return \Illuminate\Support\Collection
    */
    public function view(): View
    {
        return view('admin.students.custom', [
           'students' => Student::take(1)->get(),
           'customs' => Student::take(1)->get(),
        ]);
    }
}

这里是下载csv的控制器方法:

public function export_view()
    {
        return Excel::download(new StudentExportView, 'studentlist.csv');
    }

这里是调用这个方法的路由:

Route::get('export_view','StudentAdminController@export_view')->name('students.export_view');

但问题是,下载的内容是这样的:

如您所见,标题已损坏,正文似乎是空的。

那么如何解决这个问题呢?


查看:

<table class="table table-sm table-bordered">
    <thead>
        <tr class="thead-dark">
            <th>Row</th>
            <th>Name</th>
            <th>Family Name</th>
            <th>National Code</th>
            <th>Mobile Number</th>
            <th>Province</th>
            <th>City</th>
            <th>Degree</th>
            <th>Grade</th>
            <th>Registered Time</th>
        </tr>
    </thead>
    <tbody>
    @if($students->count() != 0)
        @foreach($students as $student)
            <tr data-id="{{ $student->mbr_id }}"
                data-mobile="{{ $student->mbr_mobile }}"
                data-post-code="{{ $student->mbr_post_code }}"
                data-address="{{ $student->mbr_address }}"
            >
                <td>{{ $student->mbr_name }}</td>
                <td>
                    {{ $student->mbr_family }}
                    <a class="information text-danger float-left"><i class="fa fa-info-circle"></i></a>
                </td>
                <td>{{ $student->mbr_national_code }}</td>
                <td>{{ $student->mbr_mobile }}</td>
                <td>{{ $student->province }}</td>
                <td>{{ $student->city }}</td>
                <td>{{ $student->degree }}</td>
                <td>{{ $student->grade }}</td>
                <td>
                @if($customs->find($student->mbr_id))
                    {{ jdate($customs->find($student->mbr_id)->created_at) }}
                @endif
                </td>
            </tr>
        @endforeach
    @else
        <tr>
            <td colspan="12" style="text-align: center">No data for showing
            </td>
        </tr>
    @endif
    </tbody>
</table>

【问题讨论】:

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


    【解决方案1】:

    尝试使用此命令发布 excel 配置:-

    php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config
    

    然后,在 config/excel.php 中,找到并更改此键:

    'use_bom' => false, to be 'use_bom' => true,
    

    这为我解决了问题。

    【讨论】:

    • 那是个好人,谢谢你。但是正文内容仍然是空的。如何解决这个问题
    • 您可以向我们显示视图文件,通过上传视图文件和 excel 正文的图片来更新问题吗?
    • 好的,我正在添加它
    • 我刚刚将我的视图代码添加到问题中。请检查一下
    • 在页面头部添加:,然后运行composer dump-autoload
    猜你喜欢
    • 1970-01-01
    • 2019-11-04
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多