Yes, my employer's customers like their CSV imports too. If you're looking at a big data entry feature and they ask you how the interface works and you say "you give it a CSV file with these columns", they're happy.
Yet, most of the time customers insist on XLS export, and we are happy if they at least acccept XLSX instead.
I suspect you're thinking of something like "CSV as outputted by Excel with the default settings", which may be clean and unambiguous, but is far from the only CSV in the world.
For that reason (and I'm just saying this generally, not targeted at the comment I'm replying to), always use the most mature CSV output library you can find for your stack. Never write your own CSV export code by bashing strings together unless you have no other choice because you're working in some stack that doesn't have or can't use existing CSV libraries.
(You can ignore the RFC for CSV too; it's not "wrong", it's just one particular flavor that was declared long after the horses had left the barn, learned to form a horse civilization, discovered the atom bomb and bombed themselves back to being plain horses again. It barely rises to the level of being "advisory" in practice.)
EDIT: I will add that EXPORTING to XLS/X is usually quite straightforward and makes users happier than getting a CSV often times. Until they start wanting to get crazy with template design and then you get into Excel styling application and you're back to hating it all over again.
Excel encodes dates and times as floating point numbers. The date / time-ness of a cell is encoded in its format. Some of the formats are hard-coded, some float depending on locale, and some use explicit format-pictures embedded in the styles.
But of course there's no guarantee that the user has formatted a cell with a date as a date. Sometimes the user has pasted a US-format date into a copy of Excel running in a UK locale, so dates that fit have day and month swapped, while dates that don't fit show up as strings. This is non-trivial to handle in the general case. I've had to add customer-specific workarounds for this case in particular.
You'd think when Microsoft came up with their new shiny file formats they'd actually make them new and shiny and good.
But nope.
http://www.aspose.com/products/cells
[NB I have no connection with Aspose, just been a happy customer for many years].
The worst thing Microsoft ever did to Excel was even translating the formula functions in different languages. So SUM() isn't actually called SUM() in half of Europe...
Working on an in-house application, this has been one of the most common types of requests. "Can we add this field here to the CSV export?" It's a three-minute task for me, but a huge time-saver for the manager of the team using the application and thus highly appreciated.
Personally, I do love whenever applications allow to export data and lack of such feature is IMO strong negative.
By the way, I've had lots of success with chart downloading by simply copying the svg element into a request to an svg to png converter.
I'm curious how you got your first few "gigs". What should the sales process actually look like? Did you cold call, or did you have enough established relationships first? How do you typically agree on a contract, has the customer come to you with needs, or did you ask them for problems first and propose some solutions, and they agreed to them?
It works over regular HTTP and has a built in method to tell the server the last seen message (i.e. to allow replaying old messages), and exposes the event type (i.e. the event: field in the event block sent from the server) for use with addEventListener in the browser.
It's supported by all non-MS browsers, and because it works over regular HTTP, it can be polyfilled in IE/Edge using long polling XHR.
/Applications/LibreOffice.app/Contents/MacOS/soffice --headless --convert-to xlsx file.csv
Note, though, that some conversion errors can still occur (I've seen one personally a long time back).A resource hog, though - had to close it off into its own container, lest it gobble up all available RAM.
[0]: http://xlsxwriter.readthedocs.io/ https://pypi.python.org/pypi/XlsxWriter
[1]: https://openpyxl.readthedocs.io/ https://pypi.python.org/pypi/openpyxl
One nice feature with openpyxl is that it can work together with excel template files. So I can create a template in excel with whatever looks and features I want and then use openpyxl to populate those templates with data.
are you talking about websockets for web apps? It's not always easy to implement and it requires some extra libraries and deployment setups. Is it really that easy to add for you as giving client extra candy in post order?
Adding sockets for, say, the 3 newest logs they get in real time. Or if they have anything that maps to a graph/app-overview just make sure that will always update in real time. It's not a huge time investment for me. Customers usually never request it specifically. But I've found they are blown away when they see how everything is updated in real time. It just makes the whole thing feel 'alive'.
Another thing which I don't personally love, but I do because I understand industries have differences is just exporting whatever can be exported into .csv files or .xls files where applicable.
All in all, I work in consulting. The code I write is meant to make the life of people easier, I want to make sure they get that when possible. A big part of why I'm able to do this is that I have a lot of creative freedom to do whatever I want so long as I'm getting stuff shipped. So huzzah for comprehensive management as well!