सबसे पहले, मैं कहना चाहता हूं कि मैं यहां गहरे पानी पर हूं, क्योंकि मैं कंपनी में किसी अन्य व्यक्ति द्वारा लिखे गए कोड में कुछ बदलाव कर रहा हूं, एक्सेल में "बात" करने के लिए OleDbDataAdapter का उपयोग करके और मैं इससे परिचित नहीं हूं। वहां एक बग है जिसका मैं पालन नहीं कर सकता।एक्सेल शीट से डेटा लाने के लिए OleDbDataAdapter का उपयोग करने में समस्या
मैं 450 लाइनों के साथ एक्सेल फ़ाइल में पढ़ने के लिए ओलेडीबीडेटा एडाप्टर का उपयोग करने की कोशिश कर रहा हूं।
कोड में यह इस तरह किया जाता है:
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) {
...
}
सब कुछ एक बात के अलावा ठीक काम कर रहा है। दूसरा कॉलम 6739, 3 9 20 और अधिकतर चार अंकों की संख्या से भरा हुआ है, लेकिन चूहे की पंक्तियों में अल्फान्यूमेरिक मान हैं जैसे 8201NO और 8205NO। उन पांच कोशिकाओं को उनकी अल्फान्यूमेरिक सामग्री के बजाय खाली सामग्री के रूप में रिपोर्ट किया जाता है। मैंने एक्सेल में चेक किया है, और इस कॉलम की सभी कोशिकाओं को टेक्स्ट के रूप में चिह्नित किया गया है।
यह एक xls फ़ाइल है, और xlsx नहीं।
क्या किसी के पास कोई सुराग है क्योंकि इन कोशिकाओं को डेटारो में खाली क्यों दिखाया गया है, लेकिन संख्यात्मक लोगों को ठीक दिखाया गया है? अल्फान्यूमेरिक सामग्री वाले अन्य कॉलम हैं जो ठीक दिखाए जाते हैं।
सभी को धन्यवाद:
आप इस खुला स्रोत समाधान की कोशिश हो सकती है। आपने मुझे समझ लिया कि ऐसा क्यों हुआ, इसलिए मुझे उचित समाधान मिल सकता था। मुझे अभी भी लगता है कि यह जिस तरह से काम करता है वह बहुत भयानक है, लेकिन यह एक और कहानी है :) –