Read and write
Read
ReadCsvReadCsvFileReadCsvFileEReadCsvFileCommaReadCsvLimit
Write
WriteCsvFileWriteCsvFileEWriteCsvFileCommaWriteToSanitizeFormulas
Inspect and walk rows
Headers and cells
GetHeadersGetHeaderGetHeaderPositionGetCellGetCellByFieldGetRowAsMap
Data rows
GetNumberDataRowsGetDataRowsEachDataRowHeadTailSliceRows
Filter and transform
Filter and find
FilterByFieldWhereWhereFoldFilterRowsFindInFieldMatchInField
Cell and column transforms
GetColumnByFieldSetColumnByFieldMapColumnByFieldFillColumnByFieldReplaceInFieldTrimSpace
Shape and deduplicate
Shape
OnlyThisFieldsRenameHeaderRenameHeadersAddEmptyColumnAtAddColumnByFieldAddComputedColumnMoveColumnSplitFieldCombineFields
Unique values and rows
UniqueUniqueByFieldsDistinctValueCountsSortByFieldSortByFields
Combine and report
Combine
AppendRowsConcatConcatByNameMergeColumnsJoinLeftJoinRightJoinFullJoinJoinOn
Report and compare
GroupByGroupByEDiffByKeyOrIndexAndIndexNotIndex
The common pattern
Most scripts can stay close to this shape:
input, err := simplecsv.ReadCsvFileE("input.csv")
if err != nil {
log.Fatal(err)
}
result, ok := input.Where("status", "active")
if !ok {
log.Fatal("status field not found")
}
result, ok = result.OnlyThisFields([]string{"id", "name"})
if !ok {
log.Fatal("could not select fields")
}
if err := result.WriteCsvFileE("output.csv"); err != nil {
log.Fatal(err)
}For exact signatures and the complete package documentation, open simplecsv on pkg.go.dev. The repository README contains the longer API-oriented reference.