FarPoint의 Spread를 통해 Excel파일 생성을 알아본다.



스프레드에서 자체적으로 Excel형식을 지원하기 때문에
몇줄의 코딩만으로 간단히 작성 가능하다.

아래와 같이 스프레더 사용선언을 하고 나면...
using FarPoint.Win.Spread

아래의 오버로딩된 SaveExcel함수를 사용할 수 있게된다.

1. public bool SaveExcel(Stream stream);
2. public bool SaveExcel(string fileName);
3. public bool SaveExcel(Stream stream, ExcelSaveFlags saveFlags);
4. public bool SaveExcel(Stream stream, ExcelWarningList warningList);
5. public bool SaveExcel(string fileName, ExcelSaveFlags saveFlags);
6. public bool SaveExcel(string fileName, ExcelWarningList warningList);
7. public bool SaveExcel(string fileName, IncludeHeaders includeHeaders);
8. public bool SaveExcel(Stream stream, ExcelSaveFlags saveFlags, ExcelWarningList warningList);
9. public bool SaveExcel(string fileName, ExcelSaveFlags saveFlags, ExcelWarningList warningList);
10. public bool SaveExcel(string fileName, IncludeHeaders includeHeaders, ExcelWarningList warningList);

이 SaveExcel함수를 통해 스프레드에 뿌려진 내용들을
엑셀파일로 생성시킬 수 있다.
우리가 할 일은 엑셀파일을
무슨이름으로 어디에 저장시킬지 결정하는 것 뿐이다.


3번 SaveExcel함수를 통해
스프레드를 인자로 받아서 엑셀을 저장하는 함수를 만들어 보자.
세련되게 다이얼로그박스를 띄워서...
저장위치와 파일이름을 입력하기로 한다.

public void export2XLS(FarPoint.Win.Spread.FpSpread pSpdList)
{
    SaveFileDialog mDlg = new SaveFileDialog(); 
    mDlg.InitialDirectory = Application.StartupPath;
    mDlg.Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.*";
    mDlg.FilterIndex = 1;

    if (mDlg.ShowDialog() == DialogResult.OK)
    {
        pSpdList.SaveExcel(mDlg.FileName,
                                         FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders);
        MessageBox.Show("저장이 완료 되었습니다.", frmMainForm.Text,
                                         MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
}


자, 그럼 export2XLS함수를 사용하기만 하면 된다.
하단에 윈도우에 스프레드가 있다. 이걸 엑셀로 뽑아보자.
(스프레드의 이름은 spdMain, 시트뷰의 이름은 spsMain이라고 하자.)


우선 엑셀파일을 저장할 버튼을 하나 추가하고, 이름을 btnExportExcel이라고 하자.

btnExportExcel 버튼의 클릭 이벤트를 아래와 같이 정의하고,
그곳에서 위에서 작성한 export2XLS를 호출하면 된다.
private void btnExportExcel_Click(object sender, EventArgs e)
{
    export2XLS(spdMain);
}

그러나, 스프레더 값이 하나도 없을 때 굳이 저장함수를 호출할 필요는 없으니...
아래와 같이 작성한다.

private void btnExportExcel_Click(object sender, EventArgs e)
{
    if (spsMain.RowCount > 0)
    {
        export2XLS(spdMain);
    }
}


빌드해서....
버튼을 클릭하면 아래의 다이얼로그 박스가 뜨고


저장을 하게 되면 아래와 같은 엑셀파일을 얻을 수 있다.


너무 간단한가???
Google AdSense

+ Recent posts