I am trying to import a CSV or DBF into QGIS so I can perform a join on a shapefile. However, QGIS is not detecting the first row as header names. I know I've done similar joins before and there's never been a problem detecting column headers.
Turns out Open Office was adding the new row of column names (N1,C,20 | N2,C,13 | N3,C,4 | N4,N,7,2 etc.) because some of the existing column names were only numbers. The problem persisted even after I reformatted the column row as text. However, after adding text to those column names, (e.g. changing 2004 to year_2004) Open Office stopped automatically inserting the new column names.
Problem solved--don't use only numeric characters as field names.
For whatever reason, when saving .csv files in Excel, it uses a different character for line breaks, that QGIS does not recognize.
In your terminal convert the line breaks to the standard '\n' by inputting:
tr '\15' '\n' < infile.csv > outfile.csv
QGIS should now recognize it.
I've gotten around this problem by opening the file in Open Office and saving the file as a .dbf
CSV should probably be in the format of...
Myidfield, country, contintent, OECD, YEAR 1,durusallem, Asia, N, 00000.00
The char fields I think will default to 255, the number field will take the size and decimal from the first value in the column.
csv being "comma separated values".
As per my other comment you should certainly stay away from a "." In the field name.