resources/boost/skills/references/package.md
Use this file as the completeness checklist for maatwebsite/excel. If a user asks for "all features", compare the task against every section here.
maatwebsite/excelMaatwebsite\ExcelMaatwebsite\Excel\ExcelServiceProviderMaatwebsite\Excel\Facades\Excelconfig/excel.phpsrc/Concerns/src/Console/tests/Excel::download($export, $fileName, $writerType = null, $headers = [])Excel::store($export, $filePath, $disk = null, $writerType = null, $diskOptions = [])Excel::queue($export, $filePath, $disk = null, $writerType = null, $diskOptions = [])Excel::raw($export, $writerType)Excel::import($import, $filePath, $disk = null, $readerType = null)Excel::queueImport($import, $filePath, $disk = null, $readerType = null)Excel::toArray($import, $filePath, $disk = null, $readerType = null)Excel::toCollection($import, $filePath, $disk = null, $readerType = null)Maatwebsite\Excel\ExporterMaatwebsite\Excel\ImporterExcel::XLSXExcel::CSVExcel::TSVExcel::ODSExcel::XLSExcel::SLKExcel::XMLExcel::GNUMERICExcel::HTMLExcel::MPDFExcel::DOMPDFExcel::TCPDFconfig('excel.extension_detector')NoTypeDetectedException when detection cannot resolve a writer/reader typeFromArray: rows from array()FromCollection: rows from collection()FromGenerator: rows from generator()FromIterator: rows from iterator()FromQuery: chunked query export from Eloquent, query builder, or relationFromScout: export from Laravel Scout builderFromView: export a Blade view/tableExportable: object-level download(), store(), queue(), raw(), and responsable supportWithHeadings: prepend heading rowsWithMapping: transform each source row before writingWithColumnFormatting: PhpSpreadsheet number/date formatsWithColumnWidths: fixed column widthsShouldAutoSize: auto-size columnsWithStyles: style a worksheet directlyWithDefaultStyles: workbook default stylesWithBackgroundColor: workbook background colorWithEvents: register event listeners manuallyRegistersEventListeners: auto-register static event listener methodsWithProperties: workbook document propertiesWithTitle: worksheet titleWithCustomStartCell: start export output at a custom cellWithStrictNullComparison: preserve empty string/null distinctionsWithPreCalculateFormulas: pre-calculate formulas before writingWithCharts: attach PhpSpreadsheet chartsWithDrawings: attach PhpSpreadsheet drawings/imagesWithMultipleSheets: build multi-sheet workbooksWithConditionalSheets: expose optional sheet subsets through onlySheets()HasReferencesToOtherSheets: mark formulas/references that cross sheetsWithCustomCsvSettings: per-export CSV settingsMapsCsvSettings: maps package CSV settings onto PhpSpreadsheet CSV writers/readersWithCustomChunkSize: override export chunk sizeWithCustomQuerySize: override query size estimation for queued query exportsWithProgressBar: write progress to console outputWithColumnLimit: limit exported columns through an end columnToModel: convert each row to an Eloquent model, model array, or nullToCollection: handle rows as a Laravel collectionToArray: handle rows as arraysOnEachRow: process a Row object one row at a timeWithMappedCells: map specific cells to named array keysImportable: object-level import(), queue(), toArray(), toCollection(), and console output supportWithHeadingRow: use a heading row for keysWithGroupedHeadingRow: group duplicate heading namesWithStartRow: choose first data rowWithLimit: limit number of read rowsWithColumnLimit: limit read columns through an end columnWithReadFilter: use a PhpSpreadsheet read filterWithCalculatedFormulas: read calculated formula resultsWithFormatData: read formatted valuesWithCustomCsvSettings: per-import CSV settingsWithCustomValueBinder: custom PhpSpreadsheet value bindingSkipsEmptyRows: skip empty rowsSkipsUnknownSheets: handle sheet names/indexes that do not existRemembersRowNumber: inspect current row number during importRemembersChunkOffset: inspect current chunk offset during chunked importWithValidation: row validation rulesSkipsOnFailure: handle validation failures without abortingSkipsFailures: collect failures through failures()SkipsOnError: handle thrown row errors without abortingSkipsErrors: collect errors through errors()WithBatchInserts: batch model insertsWithUpserts: upsert by uniqueBy()WithUpsertColumns: select columns updated during upsertWithSkipDuplicates: skip duplicate rows during insert/upsert flowsPersistRelations: persist model relations from import rowsValidationExceptionFailureRowSkippedExceptionIlluminate\Contracts\Queue\ShouldQueue for queued exports/imports.Maatwebsite\Excel\Concerns\ShouldBatch when queue operations should return a pending batch.Maatwebsite\Excel\Concerns\ShouldQueueWithoutChain for queued imports without job chaining.QueueExport, AppendDataToSheet, AppendQueryToSheet, AppendPaginatedToSheet, AppendViewToSheet, CloseSheet, and StoreQueuedExport.QueueImport, ReadChunk, AfterImportJob, AfterBatch, AfterChunk, and ProxyFailures.Jobs\Middleware\LocalizeJob preserves locale preferences for queued work.BeforeExportBeforeWritingBeforeSheetAfterSheetBeforeImportAfterImportAfterChunkAfterBatchImportFailedEvent and HasEventBusphp artisan make:export ExportNamephp artisan make:export ExportName --model=Userphp artisan make:export ExportName --queryphp artisan make:export ExportName --model=User --queryphp artisan make:import ImportNamephp artisan make:import ImportName --model=Userstubs publish tag.config publish tag.DownloadCollectionMixinStoreCollectionMixinDownloadQueryMacroStoreQueryMacroImportMacroImportAsMacroCollection::downloadExcel($fileName, $writerType = null, $withHeadings = false, $responseHeaders = [])Collection::storeExcel($filePath, $disk = null, $writerType = null, $withHeadings = false)Builder::downloadExcel($fileName, $writerType = null, $withHeadings = false)Builder::storeExcel($filePath, $disk = null, $writerType = null, $withHeadings = false)Builder::import($filename, $disk = null, $readerType = null)Builder::importAs($filename, callable $mapping, $disk = null, $readerType = null)exports.chunk_sizeexports.pre_calculate_formulasexports.strict_null_comparisonexports.csv.delimiterexports.csv.enclosureexports.csv.line_endingexports.csv.use_bomexports.csv.include_separator_lineexports.csv.excel_compatibilityexports.csv.output_encodingexports.csv.test_auto_detectexports.properties.*imports.read_onlyimports.ignore_emptyimports.heading_row.formatterimports.csv.delimiterimports.csv.enclosureimports.csv.escape_characterimports.csv.contiguousimports.csv.input_encodingimports.properties.*imports.cells.middlewareextension_detectorvalue_binder.defaultcache.drivercache.batch.memory_limitcache.illuminate.storecache.default_ttltransactions.handlertransactions.db.connectiontemporary_files.local_pathtemporary_files.local_permissionstemporary_files.remote_disktemporary_files.remote_prefixtemporary_files.force_resync_remotememory, illuminate, batchCacheManager, MemoryCache, BatchCacheTransactionManager, DbTransactionHandler, NullTransactionHandlerTemporaryFileFactory, LocalTemporaryFile, RemoteTemporaryFileFiles\Disk, Files\FilesystemTrimCellValue, ConvertEmptyCellValuesToNull, and custom CellMiddlewareWithCustomValueBinderExcel::fake()Excel::assertDownloaded($fileName, $callback = null)Excel::assertStored($filePath, $disk = null, $callback = null)Excel::assertQueued($filePath, $disk = null, $callback = null)Excel::assertQueuedWithChain($chain)Excel::assertExportedInRaw($className, $callback = null)Excel::assertImported($filePath, $disk = null, $callback = null)Excel::matchByRegex()Excel::doNotMatchByRegex()tests/Concerns/*Test.php.tests/ExcelFakeTest.php.tests/QueuedExportTest.php, tests/QueuedImportTest.php, tests/QueuedQueryExportTest.php, or tests/QueuedViewExportTest.php.tests/Mixins/*Test.php.tests/Validators/RowValidatorTest.php.tests/Cache/BatchCacheTest.php.tests/ExcelServiceProviderTest.php.tests/PhpSpreadsheetV5CompatibilityTest.php.