Zuerst möchte ich sagen, dass ich hier auf tiefem Wasser bin, da ich nur einige Änderungen an Code, der von jemand anderem in der Firma geschrieben wurde, machen, Verwenden von OleDbDataAdapter, um mit Excel zu "sprechen", und ich bin damit nicht vertraut. Da gibt es einen Fehler, dem ich einfach nicht folgen kann.Problem mit der Verwendung von OleDbDataAdapter zum Abrufen von Daten aus einer Excel-Tabelle
Ich versuche, einen OleDbDataAdapter zu verwenden, um eine Excel-Datei mit etwa 450 Zeilen einzulesen.
Im Code wird es so gemacht:
connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source='" + path + "';" + "Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1;\"");
connection.Open();
OleDbDataAdapter objAdapter = new OleDbDataAdapter(objCommand.CommandText, connection);
objAdapter.Fill(objDataSet, "Excel");
foreach (DataColumn dataColumn in objTable.Columns) {
if (dataColumn.Ordinal > objDataSet.Tables[0].Columns.Count - 1) {
objDataSet.Tables[0].Columns.Add();
}
objDataSet.Tables[0].Columns[dataColumn.Ordinal].ColumnName = dataColumn.ColumnName;
objImport.Columns.Add(dataColumn.ColumnName);
}
foreach (DataRow dataRow in objDataSet.Tables[0].Rows) {
...
}
Alles funktioniert gut, außer für eine Sache zu sein scheint. Die zweite Spalte ist mit meist vierstelligen Zahlen wie 6739, 3920 usw. gefüllt, aber die Zeilen haben alphanumerische Werte wie 8201NO und 8205NO. Von diesen fünf Zellen wird berichtet, dass sie einen leeren Inhalt anstelle ihres alphanumerischen Inhalts aufweisen. Ich habe Excel eingecheckt, und alle Zellen in diesen Spalten sind als Text markiert.
Dies ist eine xls-Datei übrigens, und nicht xlsx.
Weiß jemand, warum diese Zellen in der DataRow als leer angezeigt werden, aber die numerischen werden in Ordnung angezeigt? Es gibt andere Spalten mit alphanumerischem Inhalt, die gut angezeigt werden.
Vielen Dank an alle für mich helfen, sich mit diesem Thema aus. Du hast mich verstehen lassen, warum das passiert ist, damit ich die richtige Lösung finden konnte. Ich denke immer noch, die Art, wie es funktioniert, ist ziemlich schrecklich, aber das ist eine andere Geschichte :) –