Elm:
Working with CSV

How to:

Elm does not have built-in support for CSV parsing or generation; instead, third-party packages such as panosoft/elm-csv are often utilized. Below examples highlight the basic usage of this library for CSV parsing and generation.

Parsing CSV

First, you need to add the CSV package to your Elm project:

elm install panosoft/elm-csv

Then, you can parse a CSV string into a list of records. A simple example:

import Csv

csvData : String
csvData =
    "name,age\nJohn Doe,30\nJane Smith,25"

parseResult : Result String (List (List String))
parseResult =
    Csv.parse csvData

-- Sample output: Ok [["name","age"],["John Doe","30"],["Jane Smith","25"]]

Generating CSV

To generate a CSV string from Elm data, use the Csv.encode function:

import Csv

records : List (List String)
records =
    [ ["name", "age"]
    , ["John Doe", "30"]
    , ["Jane Smith", "25"]
    ]

csvOutput : String
csvOutput =
    Csv.encode records

-- Sample output: "name,age\nJohn Doe,30\nJane Smith,25\n"

This simplistic approach enables you to integrate CSV functionalities within your Elm applications, leveraging the type-safe environment for data manipulation and exchange.