Umgang mit ungültigen Zeichen im OleDb in Excel importieren?
Ich bin das importieren von excel-Dateien auf meine Bewerbung und manchmal Arbeitsblätter Spalte mit Namen " $ " - Zeichen in es. Erhalte ich diese Exception:
System.Data.OleDb.OleDbException was unhandled
Message=''6um$'$' is not a valid name. Make sure that it does not include invalid characters or punctuation and that it is not too long.
In diesem Blatt "6um$" ist eine Spalte mit Namen.
Dies ist mein code:
OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString);
OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter(
"select * from [" + worksheetName + "$]", con);
con.Open();
System.Data.DataSet excelDataSet = new DataSet();
cmd.Fill(excelDataSet);
con.Close();
Irgendwelche Ideen, wie mit dieser situation umzugehen?
Edit:
Ich dachte, das problem war, dass $ in der Spalte name. Aber stellt sich heraus, Das problem ist, dass $ - Zeichen in Arbeitsblatt name!
- Dies ist eine Vermutung, ich bin mir also nicht darum, als Antwort. Versucht, setzen die einfache oder doppelte Anführungszeichen oder eckige Klammern [] um den problematischen Spaltennamen UND die Beseitigung der "*". ab Wählen Sie [$omeColumn], ColB, ColC von [Sheet1$].
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, dachte ich, die Lösung:
Für einige Grund, die Arbeitsblätter, die ich umbenannt habe mir extra $ - Zeichen (keine Ahnung, warum, es gibt keine $ - Zeichen in excel aber OLEDB gibt Sie mit extra $ so etwas wie diese " 6um$'$'). Ich schneiden Sie die ersten $ aus und verwenden Sie diesen code, um zu überprüfen, ist es irgendein extra $ - Zeichen noch übrig: