Om funksjonen
Formål
Formaterer generiske radobjekter til en CSV-streng uten domenekunnskap. Kalleren bestemmer både kolonnerekkefølge, overskrifter og eventuelle avvik mellom objektnøkkel og utgående felt.
Egner seg for
- Eksport av en filtrert eller avgrenset datamengde til en enkel CSV-fil som kan åpnes i regneark eller importeres i andre verktøy.
Egner seg ikke for
- Ikke for parsing, filnedlasting eller avanserte CSV-dialekter med andre skilletegn enn komma. Funksjonen produserer kun tekstinnholdet.
Signatur(er)
formatCsv(rows: Array<Record<string, unknown>>, columns: Array<{header: string, key?: string, value?: (row: Record<string, unknown>, index: number) => unknown}>) => string
| Parameter | Type | Beskrivelse |
|---|---|---|
rows | Array<Record<string, unknown>> | Radene som skal serialiseres. Hver rad kan ha vilkårlige felt; hvilke som tas med styres av columns. |
columns | Array<{header: string, key?: string, value?: (row: Record<string, unknown>, index: number) => unknown}> | Kolonnebeskrivelser i ønsket rekkefølge. Hver kolonne må ha header, og kan lese data enten via key eller en value(...)-funksjon. |
Returnerer: CSV-innhold med én overskriftsrad og CRLF-linjeskift. Returnerer "" hvis columns mangler eller er tom.
import {formatCsv} from "/designsystem/funksjoner/formattering/format-csv/format-csv.js";
const csv = formatCsv(
[
{dato: "2026-09-01", beskrivelse: "Kiwi, Majorstuen", belop: -129.5},
{dato: "2026-09-02", beskrivelse: "Linje 1\nLinje 2", belop: -89}
],
[
{header: "dato", key: "dato"},
{header: "beskrivelse", key: "beskrivelse"},
{header: "beløp", key: "belop"}
]
);
Prøv selv
Rediger uttrykket under - returverdien oppdateres live.
Tilgjengelighet
Ikke relevant: ren logikk uten DOM eller UI.
Referanser
Se også:
../format-currency/index.html - Ofte brukt sammen når tall skal vises i UI før de eventuelt eksporteres som rå CSV-data.
Brukes av:
okonomi/js/features/oversikt/oversikt.js
Avhengigheter: Ingen