İlk olarak, burada derin bir su üzerinde olduğumu söylemek istiyorum, çünkü şirketteki başka biri tarafından yazılan kodda bazı değişiklikler yapıyorum. Excel'e "konuşmak" için OleDbDataAdapter kullanarak ve bu aşina değilim. Orada takip edemediğim bir hata var.Bir Excel sayfasından veri almak için OleDbDataAdapter kullanma ile ilgili sorun
Yaklaşık 450 satırlık bir excel dosyasında okumak için bir OleDbDataAdapter kullanmaya çalışıyorum.
kodunda böyle bitti: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) {
...
}
Her şey bir şey hariç iyi çalışıyor gibi görünüyor. İkinci sütun, büyük ölçüde 6739, 3920 ve benzeri gibi dört rakamlı sayılarla doldurulur, ancak fice satırları 8201NO ve 8205NO gibi alfasayısal değerlere sahiptir. Bu beş hücrenin, alfanümerik içerik yerine boş içerik olduğu bildirilmiştir. Excel'de kontrol ettim ve bu sütunlardaki tüm hücreler Metin olarak işaretlendi.
Bu bir xls dosyasıdır, xlsx değil.
Bu hücrelerin DataRow'da neden boş olarak gösterildiğinden, ancak sayısal olanların iyi gösterildiğinden herhangi bir ipucu var mı? Tam olarak gösterilen alfanümerik içerikli başka sütunlar var.
Teşekkür bu konuyla yardımın için. Bunun neden olduğunu anlamamı sağladın, bu yüzden uygun çözümü bulabilirim. Ben hala bu şekilde çalıştığını düşünüyorum oldukça korkunç, ama bu başka bir hikaye :) –