I am using the ACE OLEDB driver to read from an Excel 2007 spreadsheet, and I find that any "." the character in the column names is converted to the character '#'. For example, if the table has the following:
Name Amt. Due Due Date Andrew 12.50 4/1/2010 Brian 20.00 4/12/2010 Charlie 1000.00 6/30/2010
the name of the second column will be indicated as "Amt # Due" when reading with the following code:
OleDbConnection connection = new OleDbConnection( "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=MyFile.xlsx; " + "Extended Properties=\"Excel 12.0 Xml;HDR=YES;FMT=Delimited;IMEX=1\""); OldDbCommand command = new OleDbCommand("SELECT * FROM MyTable", connection); OleDbReader dataReader = command.ExecuteReader(); System.Console.WriteLine(dataReader.GetName(1));
I read all the documentation that I can find, and I did not find anything that even mentions that this will happen. Has anyone come across this before? Is there any way to fix this behavior?
source share