J'utilise le pilote ACE OLEDB pour lire à partir d'une feuille de calcul Excel 2007, et je constate que tout '.' le caractère dans les noms de colonne est converti en caractère '#'. Par exemple, si je suit dans une feuille de calcul:Comment éviter que OLEDB convertisse "." S en "#" dans les noms de colonnes?
Name Amt. Due Due Date
Andrew 12.50 4/1/2010
Brian 20.00 4/12/2010
Charlie 1000.00 6/30/2010
le nom de la deuxième colonne lirait comme suit: « Amt # En raison » lorsqu'il est lu avec le code suivant:
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));
Je J'ai lu toute la documentation que je peux trouver et je n'ai rien trouvé qui mentionne même que cela arrivera. Quelqu'un at-il déjà rencontré cela? Existe-t-il un moyen de résoudre ce problème?
Cela semble être une autre variante de http://stackoverflow.com/questions/1088394/why-is-the-column-name-from -a-csv-fichier-different-than-its-datatable –