2012-04-02 10 views
20

के लिए EPPlus पुस्तकालय के साथ multistyled सेल बना सकते हैं मैं Excel फ़ाइल पीढ़ी के लिए EPPlus का उपयोग करें।मैं कैसे एक्सेल

मेरा मतलब है कि मुझे HTML टेक्स्ट (बोल्ड, इटैलिक, फ़ॉन्ट रंग, नाम, आकार पैरामीटर) को Excel सेल में कनवर्ट करने की आवश्यकता है। मुझे लगता है कि इसे बहु-स्टाइल सेल बनाने की जरूरत है, जैसे:

सेल टेक्स्ट "हैलो!"
शैली मैं चाहता है:

he - bold 
ll - italic 
o! - red colored font 

या (और अधिक जटिल)

hello! - bold 
ll - italic (also bold) 
o! - red colored (also bold) 

मैं एमएस OpenXML पुस्तकालय के बारे में पता (यह मुझे मैं क्या जरूरत है ऐसा करने के लिए अनुमति देता है)। कार्यान्वयन के लिए यह अच्छा है लेकिन थोड़ा अधिक जटिल पुस्तकालय है।

+0

हल हो गया !!! मुझे लगता है कि उपयोग कर सकते हैं: http://pastebin.com/wJfcgyhV –

+1

आपको लगता है कि लिख सकते हैं एक जवाब के रूप और के रूप में हल प्रश्न चिह्नित करने के लिए इसे स्वीकार .. – Aprillion

उत्तर

24

हल हो गया! मुझे लगता है कि उपयोग कर सकते हैं:

FileInfo fi = new FileInfo(@"c:\Book1.xlsx"); 

     using (ExcelPackage package = new ExcelPackage(fi)) 
     { 
     // add a new worksheet to the empty workbook 
     ExcelWorksheet worksheet = package.Workbook.Worksheets["Inv"]; 
     //Add the headers 

     worksheet.Cells[2, 1].IsRichText = true; 
     ExcelRichText ert = worksheet.Cells[2, 1].RichText.Add("bugaga"); 
     ert.Bold = true; 
     ert.Color = System.Drawing.Color.Red; 
     ert.Italic = true; 

     ert = worksheet.Cells[2, 1].RichText.Add("alohaaaaa"); 
     ert.Bold = true; 
     ert.Color = System.Drawing.Color.Purple; 
     ert.Italic = true; 

     ert = worksheet.Cells[2, 1].RichText.Add("mm"); 
     ert.Color = System.Drawing.Color.Peru; 
     ert.Italic = false; 
     ert.Bold = false; 


     package.Save(); 
     } 
3

मेरे लिए किसी कारण एंटोन के जवाब फ्लॉप काम के लिए।

public static class RichtTextExtensions 
{ 
    public static ExcelRichText Add(this ExcelRichTextCollection richTextCollection, 
     string text, bool bold = false, bool italic = false, Color? color = null, float size = 11, 
     bool underline = false, string fontName = "Segoe UI Light") 
    { 
     var richText = richTextCollection.Add(text); 

     richText.Color = color ?? Color.Black; 
     richText.Bold = bold; 
     richText.Italic = italic; 
     richText.Size = size; 
     richText.FontName = fontName; 
     richText.UnderLine = underline; 

     return richText; 
    } 
} 

और यह उपयोग करने के लिए: वर कार्यपत्रक = package.Workbook

FileInfo fi = new FileInfo(@"c:\Book1.xlsx"); 

using (ExcelPackage package = new ExcelPackage(fi)) 
{ 
    // add a new worksheet to the empty workbook 
    ExcelWorksheet worksheet = package.Workbook.Worksheets["Inv"]; 

    //add multi-coloured text to a cell 
    worksheet.Cells[2, 1].IsRichText = true; 
    ExcelRichTextCollection rtfCollection = worksheet.Cells[2, 1].RichText; 
    ExcelRichText ert = rtfCollection.Add("bugaga"); 
    ert.Bold = true; 
    ert.Color = System.Drawing.Color.Red; 
    ert.Italic = true; 

    ert = rtfCollection.Add("alohaaaaa"); 
    ert.Bold = true; 
    ert.Color = System.Drawing.Color.Purple; 
    ert.Italic = true; 

    ert = rtfCollection.Add("mm"); 
    ert.Color = System.Drawing.Color.Peru; 
    ert.Italic = false; 
    ert.Bold = false; 

    package.Save(); 
} 
+0

मैं इस पल में नवीनतम संस्करण 3.0.0.2 इस्तेमाल किया है। कृपया अपने lib का संस्करण देखें। –

1

मैं कोड एक बालक को कम करने में मदद करता है जो इस के लिए एक विस्तार विधि बना लिया है: मैं का इस्तेमाल किया था। Worksheets.Add ("Sheet1");

using (ExcelRange cellRange = worksheet.Cells[1,1]) 
{ 
    cellRange.RichText.Add("This is ", size: 18, underline:true); 
    cellRange.RichText.Add("a simple ", bold: true, size: 18, underline: true); 
    cellRange.RichText.Add("test ", size: 18, underline: true); 
    cellRange.RichText.Add("of the extension method", bold: true, size: 18, underline: true); 
} 

यह सुनिश्चित नहीं है कि ईपीप्लस के पास पहले से ऐसा कुछ क्यों नहीं है, या शायद वे ऐसा करते हैं और मुझे याद आया।