이번에 c#으로 된 프로젝트에 잠시 투입되었다가, 뺑이까다가 만든 함수 입니다.
워낙 실력이 허접해서 좀 이상할지도 모르겠지만, 혹시 유용하게 사용하실 분이 계실까 해서 올립니다. ^^
워낙 실력이 허접해서 좀 이상할지도 모르겠지만, 혹시 유용하게 사용하실 분이 계실까 해서 올립니다. ^^
함수명 : SpreadRowSpanFunc
인자 :
@fpSpread : 해당 스프레드
@fromColumn : 시작 칼럼 idx
@toColumn : 마지막 칼럼 idx
기능 : 스프레드의 특정 필드를 rowSpan 시켜준다.
사용법
SpreadRowSpanFunc(fpSpread1, 0, 4); // 0부터 4번째 칼럼중 동일한 내용을 rowspan 처리 한다.
인자 :
@fpSpread : 해당 스프레드
@fromColumn : 시작 칼럼 idx
@toColumn : 마지막 칼럼 idx
기능 : 스프레드의 특정 필드를 rowSpan 시켜준다.
사용법
SpreadRowSpanFunc(fpSpread1, 0, 4); // 0부터 4번째 칼럼중 동일한 내용을 rowspan 처리 한다.
public void SpreadRowSpanFunc(FarPoint.Win.Spread.FpSpread fpSpread, int fromColumn, int toColumn) { try { string strTmp = string.Empty; Hashtable ht = new Hashtable(); int startidx = 0; int iCnt = 0; int rowCount = fpSpread.ActiveSheet.RowCount; if (rowCount > 0) { for (int j = fromColumn; j <= toColumn; j++) { // colum이동후 초기화 ht = new Hashtable(); strTmp = ""; for (int i = 0; i < rowCount; i++) { if(!strTmp.Equals("") && strTmp.CompareTo(fpSpread.ActiveSheet.Cells[i,j].Value.ToString()) != 0) { ht.Add(startidx, iCnt); } if(strTmp.CompareTo(fpSpread.ActiveSheet.Cells[i,j].Value.ToString()) != 0) { strTmp = fpSpread.ActiveSheet.Cells[i,j].Value.ToString(); iCnt=0; startidx = i; } iCnt++; } ht.Add(startidx, iCnt); IDictionaryEnumerator myEnumerator = ht.GetEnumerator(); while ( myEnumerator.MoveNext() ) { fpSpread.ActiveSheet.Cells[Convert.ToInt16(myEnumerator.Key), j].RowSpan = Convert.ToInt16(myEnumerator.Value); } fpSpread.ActiveSheet.Columns.Get(j).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center; } } } catch (System.Exception ex) { MessageBox.show(ex.Message) } }