반응형
Excel용 EPLus 라이브러리로 다중 스타일 셀을 만들려면 어떻게 해야 합니까?
저는 엑셀 파일 생성을 위해 EPLUS를 사용합니다.
HTML 텍스트(굵은 글씨, 기울임꼴, 글꼴 색, 이름, 크기 매개변수)를 Excel Cell로 변환해야 한다는 뜻입니다.다음과 같은 멀티 스타일 셀을 생성해야 합니다.
셀 텍스트는 "안녕하세요!"입니다.
제가 원하는 스타일은:
he - bold
ll - italic
o! - red colored font
또는 (더 복잡한)
hello! - bold
ll - italic (also bold)
o! - red colored (also bold)
MS OpenXML 라이브러리에 대해 알고 있습니다(필요한 작업을 수행할 수 있게 해줍니다).이것은 좋지만 구현을 위한 좀 더 복잡한 라이브러리입니다.
해결됐어요! 그걸 사용할 수 있어요.
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();
}
어떤 이유에서인지 안톤의 대답은 나에게 통하지 않았습니다.다음을 사용해야 했습니다.
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();
}
코드를 조금 줄이는 데 도움이 되는 확장 방법을 만들었습니다.
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 워크시트 = 패키지.워크북.워크시트.추가("시트1");
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);
}
왜 EPLUS가 이미 이런 것을 가지고 있지 않은지, 아니면 아마도 그들이 가지고 있고 나는 그것을 놓쳤을 것입니다.
언급URL : https://stackoverflow.com/questions/9973240/how-can-i-create-multistyled-cell-with-epplus-library-for-excel
반응형
'IT' 카테고리의 다른 글
"0"과 "1"을 거짓과 참으로 변환하는 방법 (0) | 2023.04.28 |
---|---|
deque 컨테이너와 list STL 컨테이너의 차이점은 무엇입니까? (0) | 2023.04.28 |
항목이 업데이트될 때 데이터 그리드가 업데이트되지 않는 이유소스가 변경되었습니까? (0) | 2023.04.28 |
필터링된 목록을 VBA로 루프하는 가장 쉬운 방법은 무엇입니까? (0) | 2023.04.28 |
Git에서 파일을 분리하는 방법은 왜 두 가지입니까? (0) | 2023.04.23 |