If you're explicitly looking to output csv-data that can be read by Excel, I would recommend looking at one of the CSV libraries like data.csv. These libraries will not only handle formatting data as strings but also the actually quite tricky rules in CSV around quoting.
Example that obtains a string based on some csv data:
user=> (def data [[1 2] [2 3] [3 4] [4 5]])
#'user/data
user=> (with-out-str (write-csv *out* data))
"1,2\n2,3\n3,4\n4,5\n"
If you want to constrain narrowly to the problem you list, one way (of many ways) to do this would be to interleave an infinite sequence of newlines between each piece of data:
user=> (def data [1 2 3 4])
#'user/data
user=> (apply str (interleave data (repeat \newline)))
"1\n2\n3\n4\n"