サンプル通りに値を読み込むと、その列に数式が入っていた場合は「=L51&M51」みたいな文字列が取得されます。
namespace App\Imports;
use App\User;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;
class UsersImport implements ToCollection
{
public function collection(Collection $rows)
{
foreach ($rows as $row)
{
User::create([
'name' => $row[0],
]);
}
}
}
これを「山田(L51)太郎(M51)」のような計算結果として取得したい場合は、以下のように追加します。
namespace App\Imports;
use App\User;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\WithCalculatedFormulas; // 追加
class UsersImport implements ToCollection, WithCalculatedFormulas // 追加
{
public function collection(Collection $rows)
{
foreach ($rows as $row)
{
User::create([
'name' => $row[0],
]);
}
}
}
これだけ!
情報元はこちらのIssue → How can I import calculated values?