본문 바로가기
Winform

[DevExpress] Spread Sheet 엑셀저장

by 캡틴노랑이 2015. 8. 31.
반응형

MS-Office를 사용하는 것이 좋으나, 상황에 따라서 dev의 spread를 사용해야 될 때가 있다. 

그럴 때음 다음과 같이 사용하며 특징은 한번 그리드를 엑셀로 내린다음에 내린 파일에 작업을 해야된다.




using DevExpress.Office;
using DevExpress.Spreadsheet;
using DevExpress.XtraSpreadsheet;
using DevExpress.XtraPrinting;
using DevExpress.Docs;
using System.IO;

SaveFileDialog dialog = new SaveFileDialog();
dialog.FileName = "test.xlsx";
dialog.Filter = "Excel File(*.xlsx)|*.xlsx";
dialog.RestoreDirectory = true;

if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    string fileFullName = dialog.FileName;
    gvMaster.ExportToXlsx(fileFullName);
       
    DataSet _dsExcel = (DataSet)arg.Result;

    using (var xls = new Workbook())
    {
        var sheet1 = xls.Worksheets.ActiveWorksheet;
        xls.Worksheets.Add("In-Out");
        var sheet2 = xls.Worksheets[1];
      
        var dtMaster = _dsExcel.Tables[0];
        for (int i = 0; i < dtMaster.Rows.Count; i++)
        {
            for (int j = 0; j < dtMaster.Columns.Count; j++)
            {
                sheet1.Rows[i+1][j].SetValue(dtMaster.Rows[i][j]);
            }
        }
      
        var dtDetail = _dsExcel.Tables[1];
        for (int i = 0; i < dtDetail.Rows.Count; i++)
        {
            for (int j = 0; j < dtDetail.Columns.Count; j++)
            {
                sheet2.Rows[i+1][j].SetValue(dtDetail.Rows[i][j]);
            }
        }

        //sheet1.GetUsedRange().AutoFitColumns();
        //sheet1.GetUsedRange().AutoFitRows();
        //sheet2.GetUsedRange().AutoFitColumns();
        //sheet2.GetUsedRange().AutoFitRows();

        xls.Worksheets.ActiveWorksheet = xls.Worksheets[0];
        xls.SaveDocument(fileFullName, DocumentFormat.Xlsx);

        ///자동실행
        Process.Start(fileFullName);
    }
}


반응형

'Winform' 카테고리의 다른 글

DevExpress 체크박스 Repository  (0) 2015.09.01
DevExpress 그리드 이벤트  (4) 2015.08.31
[DevExpress] 간트 차트  (0) 2015.08.31
[DevExpress] Master Detail 그리드 설정  (0) 2015.08.31
Infragistics Grid 멀티 헤더  (0) 2015.08.26

댓글