【发布时间】:2020-06-09 06:42:27
【问题描述】:
您好,我正在使用 laravel excel 从 excel 导入文件并获取数据,但列标题正在更改,我需要保持不变。例如:列名是 Mat_Type-1 然后它被转换为 mat_type_1。
而我想保持相同以从列中获取一些数据。
控制器中的功能:
public function uploadexcel(Request $request){
// $this->validate($request, [
// 'importfile' => 'required|mimes:xls,xlsx'
// ]);
echo $path = $request->file('importfile');
$array = Excel::toArray(new ProductsImport, $path);
print_r($array);
}
Excel\Imports 类:
命名空间 App\Imports;
use App\Models\Admin\CarVariant;
use App\Models\Admin\Product;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Validation\Rule;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithBatchInserts;
use Maatwebsite\Excel\Concerns\WithChunkReading;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithValidation;
class ProductsImport implements ToModel,WithHeadingRow
{
/**
* @param array $row
*
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function model(array $row)
{
// dd($row);
}
}
非常感谢任何帮助。尝试了多个选项但不起作用。
【问题讨论】:
-
@ahackney 列名是动态的,它会改变想要读取该列名并使用相同的名称。有一个 HeadingRowFormatter 选项,但对如何实现它感到困惑。
标签: php excel laravel phpexcel laravel-excel