Yes, this would still need to be compiled. To give an example, an uncompiled AR inventory report will be around 500MB in XML format. When compiled (utilize PowerShell to open the XML with Excel, and SaveAs and XLSX formatted file), the resulting file will be around 25MB.

While the XML solution will work, XML is heavy. You’ll need to have it compiled post-creation, which can be done programmatically on a Windows Server with PowerShell. Otherwise, I’d use a python script to do the compilation on a Unix server.

It's amazing how many different ways everyone's taken to read a standard format. I thought I'd add this excerpt from the RFC 4180. So far, I haven't found a way to read a CSV line that takes into account all of the requirements of the escaped field, specifically with the LF character. To see this for yourself, create a new Excel workbook, data into a field and use Alt+Enter a few times, and then save the file as a CSV file. The line feeds are within the field data.

The ABNF grammar [2] appears as follows:
file = [header CRLF] record *(CRLF record) [CRLF]
header = name *(COMMA name)
record = field *(COMMA field)
name = field
field = (escaped / non-escaped)
non-escaped = *TEXTDATA
COMMA = %x2C
CR = %x0D ;as per section 6.1 of RFC 2234 [2]

This is great except in the instance where you don't know the descriptors. We utilize CSVTOCLASS for situations where we do.

I attempted to use the following as the line terminator, which is in fact a CRLF. For some reason, it terminates even when only the LF occurs.

S fi.LineTerminator = $c(13,10)

Here's the next challenge, and one that I'm encountering using the $$CSVtoList^%occLibrary... line feeds within the field data (enclosed in double quotes).

The line ends with CRLF, and within the double quote enclosed field there appears 
 followed by a Line feed. The RFC 4180 standard states this should be acceptable, but I'm reviewing how to review this now. Any thoughts?

This works beautifully.

Are you aware of where the %occLibrary documentation may be referenced?

I'd like to know this as well. It would definitely save me a lot of time by referencing this documentation.