Kovah, thanks for your answer. I doesn’t work with single quotes either. I had a look into the source and noticed you are checking wether the file headers match the expected headers by using the <> operator. The import module therefor expects the columns to be in the exact same order in the uploaded file as in your array. This should be refactored to make it look for the headers to exist somewhere or not. The order of columns should not be important. Also, this check should expect to receive more headers/columns than Invoice Plane will actually use.
Edit: Just noticed the import later on even relies on the order of the columns when filling $db_data.
Can we not have the Import Data point to file location on your computer? I think this is the ideal way to go rather than place file in Upload folder before importing? Or what do you think?