Why do apps use CSV format?

If you've ever moved data in or out of an app, you've probably noticed that the default choice for the format is *drum roll* the beloved CSV. There are some notable exceptions. A few databases on the market today, or proprietary systems that businesses may utilize, they may not have CSV as an option when uploading or downloading data.

However, for most of you out there, CSV will be the most common (and sometimes the only) choice you have for moving data in and out of your apps. Remember, this is one of the core uses for CSV!

There are really two main functions you'll see CSV pop up:

1) Import
Uploading data into your app. That can mean adding new records (import), updating existing records (update) or a combination of both at the same time (upsert). The data comes from a file you have, and you upload that file into your app in order to add information into your database.

2) Export
Downloading data from your app. This means simply extracting information from your database and saving that somewhere externally - whether it be in a file on your hard drive, in a sharing platform like Dropbox or Sharepoint, etc.

When it comes to moving data - either importing or exporting - there are two huge factors where CSV has the upper hand.

Compatibility
CSV is the universal language, that virtually any app or software can read and process.

When it comes to importing data, this is crucial because the data in your file has to be "read" by the app before it can be added into the database as accurate information. All other formats, even common ones like Excel, require some level of translation and transformation in order to be read by another program. CSV is plain text, and requires little effort for your app to understand and process accurately. Some formats, like SQL or JSON and others, may be entirely incompatible with your app. This can leave you with a more tedious (and often expensive!) process of translating data into a more compatible format before you can upload it to your database.

For exporting data, this is more of a convenience for you. When your app provides the downloaded CSV to you, you can take this CSV almost anywhere. You don't have to worry about translating the file format before being able to upload to another database, or even get stuck with opening the file on your computer. If you are moving data between apps, you can even export from one and import to another without ever having to open the file itself in between! CSV can be used virtually anywhere, so your export file in CSV format is a gift!

Efficiency

CSV is a very simple format, which results in much faster processing times when importing or exporting data. When dealing with any other format, the data requires much more processing effort to translate and properly format the data. The difference in file sizes is also significant!

Take for example this very simple file, saved as CSV.

This file in CSV format is only 106 bytes in size. As soon as it is saved in Excel format, it jumps to 6 kilobytes. That is over 60 times the size! Now imagine that difference applied to much larger files. It's no small change!
Whether your app is downloading or uploading data, the size and the complexity of the file can mean huge differences in the amount of time it takes to complete the task. Have you ever sat around waiting for what seemed like an eternity for a file to upload for an import? Or have you ever had a network timeout when downloading a file, because it took so long? Chances are, you have, and you then know how crucial it can be to work with files that are the most efficient.

To summarize, you can think of CSV as the most portable of the file formats. It takes the least amount of time to process, they take up less space when downloaded, and you can take them virtually anywhere. This is why most apps and software will always opt to use CSV as their format of choice when working with data coming in or out.