2015-12-15 13 views
7

मैं एक्सेल फ़ाइल से डेटा पढ़ने की कोशिश कर रहा हूं।केंद्रीय निर्देशिका त्रुटि नहीं मिली

FileStream stream = File.Open (@"C:\Temp\F1\SMRPAC974-00024COMINVDETEXTRACT.xlsx", FileMode.Open, FileAccess.Read); 
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); 
DataSet result = excelReader.AsDataSet(); 
excelReader.Close(); 
string csvData = ""; 
int row_no = 0; 
while (row_no < result.Tables[0].Rows.Count) 
{ 
for (int i = 0; i < result.Tables[0].Columns.Count; i++) 
{ 
    csvData += result.Tables[0].Rows[row_no][i].ToString() + ";"; 
} 
row_no++; 
csvData += "\n"; 
} 

जिस समस्या का मैं वर्तमान में सामना कर रहा हूं वह एक त्रुटि है कि "केंद्रीय निर्देशिका नहीं मिल सकती"। मुझे नहीं पता कि इसका क्या मतलब है मैंने एक्सेल फ़ाइल को अलग-अलग स्थानों पर ले जाने का भी प्रयास किया है, लेकिन मुझे अभी भी एक ही त्रुटि का सामना करना पड़ रहा है।

+0

क्या आप एक स्टैकट्रैक प्रदान कर सकते हैं? –

+0

क्या यह हो सकता है कि फ़ाइल भ्रष्ट है? – Fred

+1

यह मानते हुए कि एक .xlsx फ़ाइल मूल रूप से एक ज़िपित xml फ़ाइल है और त्रुटि ज़िप फ़ाइलों के साथ समस्या का संकेत देती है, तो मुझे एक भ्रष्ट फ़ाइल माननी होगी। –

उत्तर

14

एक अपवाद बताते हुए:

केंद्रीय निर्देशिका

नहीं खोजा जा सका इंगित करता है कि निम्न में से एक होने की संभावना सत्य है:

  1. फ़ाइल भ्रष्ट
  2. फ़ाइल है वास्तव में .xslx फ़ाइल नहीं है (क्या आप वाकई .xls फ़ाइल नहीं हैं?)
  3. पुस्तकालय आप फ़ाइल को पढ़ने के लिए उपयोग कर रहे हैं एक बग

अपने कोड से है जैसे आप ExcelDataReader उपयोग कर रहे हैं और एक XML स्वरूप (xlsx) फ़ाइल खोलने का प्रयास यह लग रहा है नहीं है। क्या आप सुनिश्चित कर रहे हैं कि फ़ाइल वास्तव में .xls फ़ाइल नहीं है जिसे किसी ने .xlsx के रूप में गलत नाम दिया है? आप का उपयोग करके यह जांच कर सकता है:

IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream); 

के बजाय:

IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); 
2

जांच मौसम आप .xlsx या .xls फ़ाइल का उपयोग कर रहे हैं।

आप .xlsx उपयोग कर रहे हैं यदि आप .xls उपयोग कर रहे हैं तो

 IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); 

का उपयोग तो का उपयोग

IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream); 

आशा है कि यह मदद करता है। यह मेरे लिए काम किया।

संबंधित मुद्दे