What are good ways to upload bulk .csv data into a webapp using Django/Python?
If you'll copy excel table into clipboard and then paste results into notepad, you'll notice that it's tab separated. I once used it to make bulk import from most of table editors by copy-pasting data from the editor into textarea on html page.
You can use a background for textarea as a hint for number of columns and place your headers at the top suggesting the order for a user. 
Javascript will process pasted data and display them to the user immediately with simple prevalidation making it easy to fix an error and repaste.
Then import button is clicked, data is validated again and import results are displayed.
Unfortunately, I've never heard any feedback about whenever this was easy to use or not.
Anyway, I still see it as an option when implementing bulk import.
I have a very basic CSV file upload module working to bulk upload my user's data into my site.  I process the CSV file in the backend with a python script that runs on crontab and then email the user the results of the bulk upload.  This process works ok operationally, but my issue is with the format of the csv file.  
Are there good tools or even basic rules on how to accept different formats of the csv file?  The user may have a different order of data columns, slightly different names for the column headers (I want the email column to be entitled "Email", but it may say "Primary Email", "Email Address"), or missing additional data columns.  Any good examples of CSV upload functionality that is very permissive and user friendly?
Also, how do I tell the user to export as CSV data?  I'm importing address book information, so this data often comes from Outlook, Thunderbird, other software packages that have address books.  Are there other popular data formats that I should accept?