Excel dosyalarında (hem xls hem de xlsx) okumak için bir C# kitaplığı yazıyorum ve bir sorunla karşılaşıyorum. Benim Excel dosyası dize değerlerine sahip bir sütunu vardır, ama ilk satırda sayısal değeri varsaExcel veri ayıklama - Sütun veri türü ile sorun
this question ifade ne birbirinin aynı, OLEDB Sağlayıcısı sütun sayısal olarak varsayar ve için NULL
döndürür Bu sütunda sayısal olmayan değerler.
in the answer provided olarak kayıt defterinde değişiklik yapabileceğimin farkındayım, ancak bu bir kitaplık olduğundan, birçok makinede kullanmayı planladığım ve her kullanıcının kayıt defteri değerlerini değiştirmek istemediğim için merak ettim daha iyi bir çözüm var.
Belki de ACE.OLEDB dışındaki bir DB sağlayıcısı (ve JET artık dikkate alınacak kadar iyi desteklenmiyor gibi görünüyor)?
Ayrıca, bunun XLS/XLSX üzerinde çalışması gerektiğinden, xls sürümü için EPPlus/XML okuyucusu gibi seçenekler çalışmayacaktır.
bir '.csv' olarak yeniden kaydedin dosya. Aynı zamanda yüklenen ve düzenli bir şekilde dolduran bir makro var, ancak bu şekilde tüm biçimlendirme kaldırılır ve daha kolay bir içe aktarma sağlar. – AeroX
Teşekkürler, @AeroX, Bunun hakkında düşünüyordum, ama eğer mümkün olursa, onlarca başka kutu solucanlar açtığından, Interop'tan kaçınmaya çalışıyorum :) ... Başka birinin başka bir çözümü olduğunu umuyorum, ama teşekkürler Yöntemi paylaşmak için çok! –
Bunun yerine OpenXml Sdk kullanın. –