2011-01-24 9 views
8

में कनवर्ट करें मैं ब्लॉकों में अलग-अलग वेब एप्लिकेशन में काम कर रहा हूं और मुझे अपने काम के साथी से सीएसवी ऑब्जेक्ट मिल रहा है जिसे मुझे एक्सएलएस में परिवर्तित करने के लिए एक एक्सेल प्रोसेसर में परिवर्तित किया जाना चाहिए। यह सीएसवी ऑब्जेक्ट चरित्र ";" द्वारा सीमित है।सीएसवी को एक्सएलएस

मैं क्या जानना चाहता हूं कि मैं CSV ऑब्जेक्ट को प्रोग्रामिक रूप से एक्सएलएस में कैसे परिवर्तित कर सकता हूं।

उत्तर

16

सीएसवी ऑब्जेक्ट को तारों के सरणी की सरणी में परिवर्तित करना आपके लिए आसान होना चाहिए और फिर निम्न उदाहरण में ऐसा करना चाहिए (आपको Microsoft.Office.Interop.Excel पर एक संदर्भ जोड़ना होगा):

using Excel = Microsoft.Office.Interop.Excel; 

Excel.Application excel = new Excel.Application(); 
Excel.Workbook workBook = excel.Workbooks.Add(); 
Excel.Worksheet sheet = workBook.ActiveSheet; 

var CsvContent = new string[][] 
{ 
    new string[] {"FirstName", "UserName", "PostCode", "City"}, 
    new string[] {"John", "Smith", "4568", "London"}, 
    new string[] {"Brian", "May", "9999", "Acapulco"} 
}; 

for (int i = 0; i < CsvContent.Length; i++) 
{ 
    string[] CsvLine = CsvContent[i]; 
    for (int j = 0; j < CsvLine.Length; j++) 
    { 
     sheet.Cells[i + 1, j + 1] = CsvLine[j]; 
    } 
} 

workBook.SaveAs(@"C:\Temp\fromCsv.xls"); 
workBook.Close(); 
+0

मैं आपके उदाहरण का पालन करने की कोशिश करने जा रहा हूं और धन्यवाद, मैं आपको थोड़ी देर में प्रतिक्रिया दूंगा। – Hallaghan

+0

आप सीएसवी तारों की सरणी में परिवर्तित कैसे कर सकते हैं? – user65165

+0

@ user65165 यदि आपके सीएसवी में केवल गैर भागने वाले वर्ण हैं, तो आप स्ट्रिंग का उपयोग कर सकते हैं। अन्यथा आप –

0

एक विकल्प एक्सएलएस फ़ाइल बनाने के लिए किसी तृतीय पक्ष लाइब्रेरी का उपयोग करना है, और दूसरा सीएसवी फ़ाइल खोलने और इसे एक्सएलएस के रूप में सहेजने के लिए एक्सेल में हेरफेर करने के लिए COM इंटरऑप का उपयोग करना है।

+0

आपकी 2 विकल्प के बारे में वेब पर किसी भी उदाहरण है? – Hallaghan

2

क्या आउटपुट विरासत एक्सएलएस प्रारूप में होना चाहिए? यदि XLSX स्वीकार्य है, EPPlus स्प्रैडशीट्स लिखने के लिए एक महान .NET लाइब्रेरी है। पुराना excellibrary एक्सएलएस फाइलों का उत्पादन कर सकता है।

सीएसवी फ़ाइल को पार्स करने के लिए कोड की केवल कुछ पंक्तियां आवश्यक होनी चाहिए (केवल डबल उद्धरण चिह्नों से सावधान रहें) और आउटपुट स्प्रेडशीट लिखना।

+0

हां, आवश्यकताओं में से एक यह है कि एक्सएलएस प्रारूप पारित किया गया है। – Hallaghan

+0

उस स्थिति में, excellibrary को देखने लायक हो सकता है, जो एक पुरानी लाइब्रेरी है जो एक्सएलएस फाइलें लिखती है। http://code.google.com/p/excellibrary – Quppa

0
using Excel = Microsoft.Office.Interop.Excel; 

    public void Convert_CSV_To_Excel() 
    { 

     // Rename .csv To .xls 
     System.IO.File.Move(@"d:\Test.csv", @"d:\Test.csv.xls"); 

     var _app = new Excel.Application(); 
     var _workbooks = _app.Workbooks; 

     _workbooks.OpenText("Test.csv.xls", 
           DataType: Excel.XlTextParsingType.xlDelimited, 
           TextQualifier: Excel.XlTextQualifier.xlTextQualifierNone, 
           ConsecutiveDelimiter: true, 
           Semicolon: true); 
     // Convert To Excle 97/2003 
     _workbooks[1].SaveAs("NewTest.xls", Excel.XlFileFormat.xlExcel5); 

     _workbooks.Close(); 
    } 
+0

उपलब्ध सीएसवी पार्सर पुस्तकालयों में से एक का उपयोग कर सकते हैं क्या आप अपने कोड का स्पष्टीकरण जोड़ सकते हैं – Soma