CSV, Excel, XML Data Import Implementation
Import data from spreadsheets: products, customers, transactions. Requires validation, duplicate detection, error handling, transaction rollback on failure.
PHP: Laravel Excel Import
use Maatwebsite\Excel\Facades\Excel;
class ProductsImport implements ToModel, WithValidation
{
public function model(array $row)
{
return new Product([
'name' => $row['name'],
'sku' => $row['sku'],
'price' => (float) $row['price'],
]);
}
public function rules(): array
{
return [
'name' => 'required|string|max:255',
'sku' => 'required|unique:products|string',
'price' => 'required|numeric|min:0',
];
}
}
Route::post('/import', function (Request $request) {
Excel::import(new ProductsImport, $request->file('file'));
return response()->json(['status' => 'imported']);
});
Error Handling
class ProductsImport implements OnEachRow, SkipsOnError, SkipsOnFailure
{
public function onError(\Throwable $e)
{
Log::error('Import error', ['error' => $e->getMessage()]);
}
public function onFailure(\Throwable $e)
{
Log::error('Import row failed', ['error' => $e->getMessage()]);
}
}
Implementation timeline
Basic import with validation: 1–2 days. With duplicate detection and rollback: 2–3 days.







