我正在使用laravel excel上传一个excel文件。该文件的顶部包含标题。但是,当标题是日语时,它没有被正确处理。
例如,如果我的文件类似于
+---------+--------+-------+
| bango | name | level |
+---------+--------+-------+
| nihongo | 日本語 | 8 |
+---------+--------+-------+
| test01 | test01 | 12 |
+---------+--------+-------+
它给出以下输出,
这是正确的输出。但是,当我把标题改为包括日语时,它就不能正常工作了。我的文件是这样的,
+---------+--------+--------+
| 番号 | 名前 | ラベル |
+---------+--------+--------+
| nihongo | 日本語 | 8 |
+---------+--------+--------+
| test01 | test01 | 12 |
+---------+--------+--------+
输出变为
我测试混合这和把一些标题在英语和日语。我的文件是这样的,
+---------+--------+--------+
| 番号 | 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)
{
}
}
请注意,代码不工作,只有当有日本人的标题。如果有日本人在其他地方,那么它的工作没有问题。
2条答案
按热度按时间izkcnapc1#
我已经解决了这个问题。解决办法是在
config/excel.php
中更改。在该文件中找到
imports' => 'heading_row'
。然后将
formatter
从slug
更改为none
。在那之后它完美地工作了。
t40tm48m2#
或者您也可以将这些放在函数之外