Documentation
Write the list ITEMS to csv-stream.
Source
(defun princ-csv (items csv-stream
&key (quote #\")
(separator #\,)
(ignore-nulls t)
(newline +CR-LF+)
(princ #'princ-to-string))
"Write the list ITEMS to csv-stream."
(flet ((write-word (word)
(write-char quote csv-stream)
(loop
for char across (funcall princ word)
if (char= quote char) do
(progn
(write-char quote csv-stream)
(write-char quote csv-stream))
else do
(write-char char csv-stream))
(write-char quote csv-stream)))
(when items
(write-word (car items))
(dolist (i (cdr items))
(write-char separator csv-stream)
(if ignore-nulls
(when (not (null i))
(write-word i))
(write-word i)))
(write-sequence newline csv-stream))))
Source Context