컬럼(Column) 잠그기
this.fpSpread1_Sheet1.Columns.Get(0).Locked = true; |
컬럼(Column) 정렬기능 추가
1 | this.fpSpread1.ActiveSheet.SetColumnAllowAutoSort(-1, true); |
2 | this.fpSpread1.Sheets[0].Columns[1].AllowAutoSort = true; |
- Column 헤더 클릭 시 해당 Column 기준으로 데이터를 정렬하여 표시 해 준다.
- [1] 또는 [2] 중 한가지를 선택 적용한다.
현재 선택한 Row 색칠하기(잠겨진 셀 포함)
//잠긴 셀에 지정된 색상 해제 |
- RGB색상은 마음에 드는 색상으로 설정한다.
싱글 선택만 되도록
this.fpSpread1_Sheet1.SelectionPolicy = FarPoint.Win.Spread.Model.SelectionPolicy.Single; |
- 디자이너 화면에서 설정 가능하다.
셀 한번 클릭 시 이벤트
private void fpSpread1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) |
- CellClick 이벤트는 이전 클릭된 것을 바라보는 문제가 있고, SelectionChange 이벤트는 1개뿐이 없을 때 다시 선택해도 이벤트 발생이 되지 않는 문제가 있다.(이건 당연하지만...)
- DoubleClick 이벤트는 말 그대로 두번 클릭질 해야 하는데 역시 불편하다. 두번클릭보단 한번클릭이 아무래도 더 편하니까~~
혹시 다른 또는 더 좋은 방법 있으면 한 수 가르침 부탁드립니다.
컬럼 헤더 셋팅 예제코드
fpSpread1.Sheets[0].ColumnHeader.Cells[0, 0].Text = "코드"; |
- 컬럼 헤더 타이틀, 컬럼의 가로길이 설정 예.
멀티라인 텍스트 데이터 가져오기
private DataTable _rtnDT; // 전역변수 선언 // 스프레드에 데이터 바인딩 _rtnDT = _controller.getData(); fpSpread1.DataSource = _rtnDT; // 스프레드 내용 참조 시 iRow = fpSpread1.ActiveSheet.ActiveRowIndex; txtProhAbbr.Text = _rtnDT.Rows[iRow][0].ToString(); |
- fpSpread의 [row,col].Text 로는 멀티라인 데이터를 텍스트 박스에 연결 시 한줄로 출력되는 문제가 있어 해당 Row번호만 알아낸 다음 DataTable에서 직접 가져온다.
혹시 다른 또는 더 좋은 방법 있으면 한 수 가르침 부탁드립니다.
셀 병합
fpSpread1.Sheets[0].AddSpanCell(0, 0, 2, 1); |
- 인자 4개를 넘겨줘야하는데 앞 2개 인자는 병합 시작 셀의 row, col 값 이고, 뒤에 2개 인자는 병합할 row 수, 병합할 col 수 이다.
- 위 예제를 본다면 0,0 으로 부터 2개 Row, 1개 Col 병합 이므로 아래와 같이 될 것이다.
|
|
0,0 좌표로 부터 2개 Row 병합된 상태, Col 은 1 이었으므로 병합되지 않는다. 만약 Col 도 2 였다면, 2 x 2 셀 모두 합쳐 진다.
엑셀 내보내기
// 스프레드에 내보낼 정보 적재 |
- SaveFileDialog 컨트롤 을 호출하여 저장할 위치, 파일명을 입력받고, 스프레드의 내용을 해당 위치에 내보낸다.
- 스프레드 속성 중 Visible = false 인 경우, 시트 없는 빈 엑셀 파일이 생성되므로 주의한다.