Skip to main content

@std/csv@1.0.4
Built and signed on GitHub Actions

Reading and writing of comma-separated values (CSV) files

This package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Bun
This package works with Browsers
JSR Score
100%
Published
2 weeks ago (1.0.4)

Reads and writes comma-separated values (CSV) files.

import { parse } from "@std/csv/parse";
import { assertEquals } from "@std/assert";

const string = "a,b,c\nd,e,f";

assertEquals(parse(string, { skipFirstRow: false }), [["a", "b", "c"], ["d", "e", "f"]]);
assertEquals(parse(string, { skipFirstRow: true }), [{ a: "d", b: "e", c: "f" }]);
assertEquals(parse(string, { columns: ["x", "y", "z"] }), [{ x: "a", y: "b", z: "c" }, { x: "d", y: "e", z: "f" }]);

There are many kinds of CSV files; this module supports the format described in RFC 4180.

A csv file contains zero or more records of one or more fields per record. Each record is separated by the newline character. The final record may optionally be followed by a newline character.

field1,field2,field3

White space is considered part of a field.

Carriage returns before newline characters are silently removed.

Blank lines are ignored. A line with only whitespace characters (excluding the ending newline character) is not considered a blank line.

Fields which start and stop with the quote character " are called quoted-fields. The beginning and ending quote are not part of the field.

The source:

normal string,"quoted-field"

results in the fields

[`normal string`, `quoted-field`]

Within a quoted-field a quote character followed by a second quote character is considered a single quote.

"the ""word"" is true","a ""quoted-field"""

results in

[`the "word" is true`, `a "quoted-field"`]

Newlines and commas may be included in a quoted-field

"Multi-line
field","comma is ,"

results in

[`Multi-line
field`, `comma is ,`]
Built and signed on
GitHub Actions
View transparency log

Add Package

deno add jsr:@std/csv

Import symbol

import * as csv from "@std/csv";

---- OR ----

Import directly with a jsr specifier

import * as csv from "jsr:@std/csv";

Add Package

npx jsr add @std/csv

Import symbol

import * as csv from "@std/csv";

Add Package

yarn dlx jsr add @std/csv

Import symbol

import * as csv from "@std/csv";

Add Package

pnpm dlx jsr add @std/csv

Import symbol

import * as csv from "@std/csv";

Add Package

bunx jsr add @std/csv

Import symbol

import * as csv from "@std/csv";