2013-01-24 22 views
5

के साथ टेक्स्ट को एक TXT फ़ाइल में सहेजें, मुझे समस्या का हल हो गया है। मैं वर्कशीट्स के माध्यम से लूप कर सकता हूं, मैं टेक्स्ट फ़ाइल बना सकता हूं और इसे लिख सकता हूं। मेरी एकमात्र समस्या वास्तव में प्रत्येक शीट से पाठ या मूल्य निकालने वाली है। नीचे मेरे पास कोड है, लेकिन यह केवल वर्कशीट प्रति ऑब्जेक्ट फेंकता है और उन शब्दों को वास्तविक मानों की बजाय मेरी टेक्स्ट फ़ाइल में लिखता है।एक्सेल वर्कशीट्स के माध्यम से लूप और सी #

System.Object[,] 
System.Object[,] 

मुझे और क्या याद आ रहा है? मुझे इंगित करना चाहिए कि मैं एक शुरुआती प्रोग्रामर हूं।

यहाँ कोड मैं अब तक है:

using (StreamWriter sw = File.CreateText("ExtractedText.txt")) 
{ 
    Excel.Application xlApp = new Excel.Application(); 
    Excel.Workbook thisWkBook = xlApp.Workbooks.Open(thisFile); 

    foreach (Excel.Worksheet sheet in thisWkBook.Worksheets) 
    { 
     sw.WriteLine(sheet.UsedRange.Value); 
    } 
} 

कोई भी विचार? धन्यवाद!

उत्तर

3

कुछ इस तरह, परीक्षण नहीं किया। देखें http://dontbreakthebuild.com/2011/01/30/excel-and-c-interop-with-net-4-how-to-read-data-from-excel/

using (StreamWriter sw = File.CreateText("ExtractedText.txt")) 
{ 
    var excelApp = new Excel.Application(); 
    var workBook = excelApp.Workbooks.Open(thisFile); 

    foreach (var sheet in workBook.Worksheets) 
    { 
     foreach (var row in sheet.UsedRange.Rows) 
     { 
     foreach (var cell in row.Columns) 
     { 
      sw.Write(cell.Value + " "); 
     } 
     sw.WriteLine(); 
     } 
    } 
} 
+0

आह! तो मुझे भी पंक्तियों और स्तंभों के माध्यम से लूप की जरूरत थी! पकड़ लिया। मैं अभी इसका परीक्षण कर रहा हूं, धन्यवाद! – sergeidave

+0

'.Value2' भाग काम नहीं किया। लेकिन अपने सुझाव से शुरू, मैंने पाया कि आप इस प्रकार 'foreach' बयान के साथ कोशिकाओं के माध्यम से पाश कर सकते हैं कि: \t 'foreach शीट में (Excel.Worksheet thisWkBook.Worksheets में शीट) \t { \t \t foreach (Excel.Range thisRow .UsedRange.Rows) \t \t { \t \t foreach (thisRow.Columns में Excel.Range thisCell) \t \t { \t \t \t sw.Write (thisCell.Value + ""); \t \t} \t \t sw.WriteLine(); \t \t} 'क्या आप अपना उत्तर अपडेट करना चाहते हैं ताकि मैं इसे अंतिम उत्तर के रूप में चुन सकूं? – sergeidave

1

आप उदाहरण के लिए, चादर fron डेटा प्राप्त करने की आवश्यकता:

sw.WriteLine(sheet.Range["C5"].Value.ToString()); 
+0

यह मुझे सही दिशा में इंगित करता है (यह वास्तव में 'रेंज ["सी 5"] 'ब्रैकेट के साथ है)। धन्यवाद! – sergeidave

+0

मदद करने के लिए खुशी हुई! सलाह के लिए एएनडी धन्यवाद, मैं वीबी.Net से अधिक। : पी – SysDragon

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

  • कोई संबंधित समस्या नहीं^_^