2017-09-02 18 views
6

में एक्सेल फ़ाइलों को लिखना और पढ़ना मैं एक प्रोग्राम लिख रहा हूं जो सेलेनियम वेब ड्राइवर के माध्यम से वेबसाइट से डेटा लेता है। मैं अपनी परियोजनाओं के लिए फुटबॉल स्थिरता बनाने की कोशिश कर रहा हूं। मैं अब तक हूं, मैंने वेबसाइट से दिनांक और समय, टीम के नाम और अंक लेने के लिए पूरा किया। अभी भी txt फ़ाइल पर लिखने का प्रयास कर रहा है, लेकिन txt फ़ाइलसी #

पर लिखते समय यह थोड़ा गन्दा हो जाता है मैं एक्सेल फ़ाइल पर लेखन कैसे पढ़ूं और पढ़ रहा हूं? मुझे लगता है कि

Date-Time  First-Team Second-Team Score Statistics 
28/07 19:00 AM   AVB   2-1  Shot 13123 Pass 65465 ... 
28/07 20:00 BM   BVB   2-2  Shot 13123 Pass 65465 ... 
28/07 20:00 CM   CVB   2-3  Shot 13123 Pass 65465 ... 

तरह लिखना चाहते हैं और ये मेरे कोड के अपने हिस्सा है:

StreamWriter file = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\Test" + "\\" + pathName + "\\" + subFile + "\\" + pathName + ".txt", false); 

for (int k = 2; k > 1; k--) 
{ 
    //doing some stuff 
} 

लेखन हिस्सा:

for (int x = 0; x <dT.Count; x++) 
{ 
    file.Write(dateTime[x] + " " + firstTeam[x] + " " 
         + secondTeam[x] + " " + firstHalf[x] + " " + secondHalf[x] + " ") 
    for (int i = 0; i < total_FS.Count(); i++) 
    { 
      int index = total_FS[i].Length; 
      if (total_FS[i][index-1].ToString() != " " && total_FS[i] != "-") 
      { 
       file.Write(total_FS[i]); 
      } 
      else 
      { 
       SpaceC++; 
       if (total_FS[i][index - 1].ToString() == " ") 
       file.Write(total_FS[i]); 
      } 
      if (SpaceC == 9) 
      { 
       file.Write("\n"); 
       SpaceC = 0; 
       break; 
      } 
     } 


} 

उत्तर

4

कुछ शांत पुस्तकालयों है कि आप का उपयोग कर सकते हैं आसानी से पढ़ें और एक्सेल फाइलें लिखें। आप उन्हें अपनी परियोजना में संदर्भित कर सकते हैं और आसानी से स्प्रेडशीट बना सकते हैं/संशोधित कर सकते हैं।

ईपीप्लस बहुत डेवलपर अनुकूल और उपयोग करने में आसान।

Nopi

दस्तावेज़ Format.OpenXml यह स्प्रेडशीट ऑब्जेक्ट्स के लिए दृढ़ता से टाइप किए गए वर्ग प्रदान करता है और यह काम करने के लिए काफी आसान लगता है।

माइक्रोसॉफ्ट ऑफिस के लिए ओपन एक्सएमएल एसडीके 2.0 दृढ़ता से टाइप किये गए वर्गों/के साथ काम करने के लिए आसान प्रदान करता है।

ClosedXML - OpenXML करने के लिए आसान तरीका ClosedXML यह आसान डेवलपर्स (.xlsx, .xlsm, आदि) फ़ाइलों को बनाने के लिए बनाता है।

SpreadsheetGear * भुगतान किया - ASP.NET में

  • /निर्यात एक्सेल कार्यपुस्तिका आयात करने के लिए पुस्तकालय
+1

जितनी जल्दी हो सके, मैं इसे देख लूंगा और कोशिश करूँगा। बहुत बहुत धन्यवाद –

+1

मैं अत्यधिक ईपीप्लस – Kevin

+0

@ केविन मुझे भी सलाह देता हूं! ईपीप्लस अच्छा और उपयोग करने में बहुत आसान है। – krzysztofla

3

एक्सएलएस फ़ाइल बनाने के बजाय, एक CSV टेक्स्ट फ़ाइल बनाएं जिसे एक्सेल के साथ खोला जा सके। फ़ील्ड अल्पविराम से अलग हैं और प्रत्येक पंक्ति एक रिकॉर्ड का प्रतिनिधित्व करती है।

field11,field12 
field21,field22 

यदि किसी फ़ील्ड में आंतरिक अल्पविराम होते हैं, तो इसे डबल उद्धरण चिह्नों में लपेटने की आवश्यकता होती है।

"field11(row1,column1)", field12 
field21, field22 

यदि किसी फ़ील्ड में डबल उद्धरण चिह्न होते हैं, तो उन्हें बचने की आवश्यकता होती है। लेकिन आप नौकरी करने के लिए CsvHelper का उपयोग कर सकते हैं। Nuget से यह पकड़ो

PM> इंस्टॉल करें-पैकेज CsvHelper

कि यह कैसे उपयोग करने पर एक उदाहरण।

using(var textWriter = new StreamWriter(@"C:\mypath\myfile.csv") 
{ 
    var writer = new CsvWriter(textWriter); 
    writer.Configuration.Delimiter = ","; 

    foreach (var item in list) 
    { 
     csv.WriteField("field11"); 
     csv.WriteField("field12"); 
     csv.NextRecord(); 
    } 
} 

पूर्ण दस्तावेज here पाया जा सकता है।

+0

यदि मेरे पास बहुत सारे डेटा हैं तो यह मुश्किल नहीं हो सकता है। उदाहरण के लिए यदि मेरे पास 1,000 टीम नाम हैं, दिनांक-समय @derloopkat –

+0

उस स्थिति में आप पहले पंक्तियों के माध्यम से पुनरावृत्त कर सकते हैं और प्रत्येक पंक्ति कॉलम के माध्यम से पुनरावृत्त कर सकते हैं। अन्यथा कुछ कोड नमूने के अनुसार आप पंक्तियों के संग्रह का प्रतिनिधित्व करने वाली जटिल वस्तु को पारित कर सकते हैं और उन्हें सीधे लेखक के साथ लिख सकते हैं। लेखक। राइट रिकॉर्ड (पंक्तियां); हालांकि मैंने कोशिश नहीं की है। Https://stackoverflow.com/a/44728910/2516718 – derloopkat

+0

देखें ठीक है, मैं कोशिश करूँगा। बहुत धन्यवाद @derlookat –