2012-04-02 4 views
20

Excelファイルの生成にはEPPlusを使用します。Excel用EPPlusライブラリでマルチスタティックセルを作成するにはどうすればいいですか

つまり、HTMLテキスト(太字、斜体、フォント色、名前、サイズパラメータ)をExcelセルに変換する必要があります。多目的セルを作成する必要があるとします。

セルのテキストは "hello!"です。私が欲しい
スタイルは次のとおりです。

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

または(より複雑な)

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

私は(それは私が必要なものを行うことができます)MSの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

私にとってはアントンの答えのdidntの仕事いくつかの理由。

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; 
    } 
} 

そして、それを使用する: するvarワークシート= 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); 
} 

EPPlusは、すでにこのような何かを持っていない、または、おそらく彼らは、私はそれを逃した理由はわかりません。

関連する問題