Laravel excel 无法正确处理日语标题
Laravel excel can't handle japanese heading properly
我正在使用 laravel excel 上传 excel 文件。该文件包含最顶部的标题。然而,当标题是日语时,它没有被正确处理。
例如,如果我的文件是
+---------+--------+-------+
| bango | name | level |
+---------+--------+-------+
| nihongo | 日本語 | 8 |
+---------+--------+-------+
| test01 | test01 | 12 |
+---------+--------+-------+
它给出了以下输出,
这是正确的输出。
但是,当我更改标题以包含日语时,它无法正常工作。
我的文件是这样的,
+---------+--------+--------+
| 番号 | 名前 | ラベル |
+---------+--------+--------+
| nihongo | 日本語 | 8 |
+---------+--------+--------+
| test01 | test01 | 12 |
+---------+--------+--------+
输出变成
我试过把它混在一起,把一些 headers 写成英文,一些写成日文。
我的文件是这样的,
+---------+--------+--------+
| 番号 | name | ラベル |
+---------+--------+--------+
| nihongo | 日本語 | 8 |
+---------+--------+--------+
| test01 | test01 | 12 |
+---------+--------+--------+
我的结果变成了,
尽管结果正确地给出了 name
值,但序列号不正确。 name
值应该在 level
之前,但事实并非如此。
我的控制器功能就像,
public function post($id)
{
$array = (new DeliveryImport)->toArray(request('file'));
dd($array);
}
而我的 DeliveryImport.php 就像
class DeliveryImport implements ToModel, WithHeadingRow
{
use Importable;
public function model(array $row)
{
}
}
请注意,该代码仅在标题为日语时才有效。如果其他地方有日语,那么它就没有问题。
我已经解决了问题。解决方法是改成config/excel.php
.
在该文件中找到 imports' => 'heading_row'
.
然后将 formatter
从 slug
更改为 none
。
在那之后它完美地工作了。
我正在使用 laravel excel 上传 excel 文件。该文件包含最顶部的标题。然而,当标题是日语时,它没有被正确处理。
例如,如果我的文件是
+---------+--------+-------+
| bango | name | level |
+---------+--------+-------+
| nihongo | 日本語 | 8 |
+---------+--------+-------+
| test01 | test01 | 12 |
+---------+--------+-------+
它给出了以下输出,
这是正确的输出。 但是,当我更改标题以包含日语时,它无法正常工作。 我的文件是这样的,
+---------+--------+--------+
| 番号 | 名前 | ラベル |
+---------+--------+--------+
| nihongo | 日本語 | 8 |
+---------+--------+--------+
| test01 | test01 | 12 |
+---------+--------+--------+
输出变成
我试过把它混在一起,把一些 headers 写成英文,一些写成日文。 我的文件是这样的,
+---------+--------+--------+
| 番号 | name | ラベル |
+---------+--------+--------+
| nihongo | 日本語 | 8 |
+---------+--------+--------+
| test01 | test01 | 12 |
+---------+--------+--------+
我的结果变成了,
尽管结果正确地给出了 name
值,但序列号不正确。 name
值应该在 level
之前,但事实并非如此。
我的控制器功能就像,
public function post($id)
{
$array = (new DeliveryImport)->toArray(request('file'));
dd($array);
}
而我的 DeliveryImport.php 就像
class DeliveryImport implements ToModel, WithHeadingRow
{
use Importable;
public function model(array $row)
{
}
}
请注意,该代码仅在标题为日语时才有效。如果其他地方有日语,那么它就没有问题。
我已经解决了问题。解决方法是改成config/excel.php
.
在该文件中找到 imports' => 'heading_row'
.
然后将 formatter
从 slug
更改为 none
。
在那之后它完美地工作了。