मैं उपयोग कर रहा हूँ OLEDB डेटा प्रदाता फ़ाइल उत्कृष्टता को पढ़ने के लिए उपयोग कर फ़ाइल उत्कृष्टता, लेकिन समस्या यह एक्सेल शीट में कुछ cloumn है संख्या स्ट्रिंग के बजाय उदाहरण के लिए एक अमान्य मान है कि वहाँ, जब मैंने पढ़ा है यह अमान्य मान मुझे वास्तविक मान के बजाय खाली स्ट्रिंग मिलता है।पढ़ना OLEDB डेटा प्रदाता
ऊपर दिए गए स्क्रीनशॉट के लिएजब मैं मूल्य जॉन रिक्त स्ट्रिंग हो रही पढ़ें।
तो क्या इस अवैध मूल्य को पढ़ने का कोई तरीका है?
किसी भी मदद की सराहना की जाएगी।
कोड Excel फ़ाइल
private DataTable ReadExcelFile(string sheetName, string path)
{
using (OleDbConnection conn = new OleDbConnection())
{
DataTable dt = new DataTable();
string Import_FileName = path;
string fileExtension = Path.GetExtension(Import_FileName);
if (fileExtension == ".xls")
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Import_FileName + ";" + "Extended Properties='Excel 8.0;HDR=YES;'";
if (fileExtension == ".xlsx")
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Import_FileName + ";" + "Extended Properties='Excel 12.0 Xml;HDR=YES;'";
using (OleDbCommand comm = new OleDbCommand())
{
comm.CommandText = "Select * from [" + sheetName + "$]";
comm.Connection = conn;
using (OleDbDataAdapter da = new OleDbDataAdapter())
{
da.SelectCommand = comm;
da.Fill(dt);
return dt;
}
}
}
}
मुझे लगता है कि आप 'एचडीआर = हाँ' के बाद कनेक्शन स्ट्रिंग में '; IMEX = 1' 'सेट करके एक ही चीज़ को पूरा कर सकते हैं। –
@ डॉगग्लेंसी जो मुझे याद है, इस दृष्टिकोण के साथ एक समस्या थी, लेकिन यह निश्चित रूप से लायक है एक कोशिश करें और यदि यह काम करता है, तो यह रजिस्ट्री संपादन से बेहतर है। –
IMEX = 1 इस पर कोई प्रभाव नहीं डालता है। इस विषय को देखें http://stackoverflow.com/questions/10102149/what-is-imex-in-the-oledb-connection -string – Adam