Clojure-CSV is a small library for reading and writing CSV files. It correctly handles common CSV edge-cases, such as embedded newlines, commas, and quotes. The main functions are parse-csv and write-csv.
Clojure-CSV is a small library for reading and writing CSV files. It correctly handles common CSV edge-cases, such as embedded newlines, commas, and quotes. The main functions are parse-csv and write-csv.
(parse-csv csv & {:as opts})
Takes a CSV as a string or Reader and returns a seq of the parsed CSV rows, in the form of a lazy sequence of vectors: a vector per row, a string for each cell.
Accepts a number of keyword arguments to change the parsing behavior: :delimiter - A character that contains the cell separator for each column in a row. Default value: , :end-of-line - A string containing the end-of-line character for reading CSV files. If this setting is nil then \n and \r\n are both accepted. Default value: nil :quote-char - A character that is used to begin and end a quoted cell. Default value: " :strict - If this variable is true, the parser will throw an exception on parse errors that are recoverable but not to spec or otherwise nonsensical. Default value: false
Takes a CSV as a string or Reader and returns a seq of the parsed CSV rows, in the form of a lazy sequence of vectors: a vector per row, a string for each cell. Accepts a number of keyword arguments to change the parsing behavior: :delimiter - A character that contains the cell separator for each column in a row. Default value: \, :end-of-line - A string containing the end-of-line character for reading CSV files. If this setting is nil then \n and \r\n are both accepted. Default value: nil :quote-char - A character that is used to begin and end a quoted cell. Default value: \" :strict - If this variable is true, the parser will throw an exception on parse errors that are recoverable but not to spec or otherwise nonsensical. Default value: false
(quote-and-escape-row row delimiter quote-char force-quote)
Given a row (vector of strings), quotes and escapes any cells where that is necessary and then joins all the text into a string for that entire row.
Given a row (vector of strings), quotes and escapes any cells where that is necessary and then joins all the text into a string for that entire row.
(write-csv table
&
{:keys [delimiter quote-char end-of-line force-quote]
:or
{delimiter \, quote-char \" end-of-line "\n" force-quote false}})
Given a sequence of sequences of strings, returns a string of that table in CSV format, with all appropriate quoting and escaping.
Accepts a number of keyword arguments to change the output: :delimiter - A character that contains the cell separator for each column in a row. Default value: , :end-of-line - A string containing the end-of-line character for writing CSV files. Default value: \n :quote-char - A character that is used to begin and end a quoted cell. Default value: " :force-quote - Forces every cell to be quoted (useful for Excel interop) Default value: false
Given a sequence of sequences of strings, returns a string of that table in CSV format, with all appropriate quoting and escaping. Accepts a number of keyword arguments to change the output: :delimiter - A character that contains the cell separator for each column in a row. Default value: \, :end-of-line - A string containing the end-of-line character for writing CSV files. Default value: \n :quote-char - A character that is used to begin and end a quoted cell. Default value: \" :force-quote - Forces every cell to be quoted (useful for Excel interop) Default value: false
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close