본문 바로가기

C#

[C#] FpSpread 셀 자동 줄 바꿈 설정 / 자동 셀 높이 적용 방법

반응형

 

 

C# FpSpread(FarPoint)를 사용해서 엑셀에 출력할 때 아래와같이 텍스트가 한 셀의 Width를 넘어가는 증상이 발생한다.  해당 셀은 더블클릭 시 데이터는 들어있지만, 저렇게 육안으로 확인할 때에는 글자가 짤려서 표현되기 때문에 불편함을 발생시킨다. 함수로 구현하는 방법도 있지만, 속성값만 변경해서 자동 줄바꿈에 대해 해결할수 있는 방안이 있다.

 

 

1. 디자이너 속성 변경

1. CellType = Rich Text
2. Multiline = False →  True
3. WordWrap = False →  True

 

디자이너에서 이렇게 변경해주면 데이터의 길이가 긴 한줄의 데이터를 자동으로 줄바꿈이 가능하다. 다만, C#에서 실행하게 되면 로딩시간이 지연되기 때문에 C# 소스안에서 해당 속성을 적용해주면 약간의 속도 개선이 가능하다.

 

 

1
2
3
4
5
6
7
FarPoint.Win.Spread.CellType.RichTextCellType RichTextType = new FarPoint.Win.Spread.CellType.RichTextCellType();
rtb.Multiline = true;
rtb.WordWrap = true;

spsAcdtList.Cells[iRow, (int)SP_FLD.CAREER].CellType = RichTextType;
 
 
 
cs

 

 

2. 셀 높이 자동설정

그리고, 위 설정과 함께 사용하면 좋은기능이 있는데 아래와 같이 셀에 값을 입력할 때 셀의 높이를 자동설정을 해주면 본인이 적용시킨 셀의 Width 범위 안에서 글자의 길이에 따라 자동으로 높이를 조절해주기 때문에 같이 적용시키면 좋다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int iRow = 0;
 
foreach (Hashtable hList in aList) 
{
    spsAcdtList.Cells[iRow, (int)SP_FLD.TEST].Text = hList["TEST"].ToString();
    spsAcdtList.Cells[iRow, (int)SP_FLD.TEST2].Text = hList["TEST2"].ToString();
    /*자동 높이 조절*/
    spdAcdtList.ActiveSheet.Rows[iRow].Height = spdAcdtList.ActiveSheet.Rows[iRow].GetPreferredHeight();
    /*자동 넓이 조절*/
    /*spdAcdtList.ActiveSheet.Columns[(int)SP_FLD.TEST3].Width = 
      spdAcdtList.ActiveSheet.Columns[(int)SP_FLD.TEST3].GetPreferredWidth();*/
    iRow++;
}
 
 
cs

 

반응형