EMDI는 지금도 개발중

C# : SaveFileDialog 엑셀 저장 및 열기 How to open Excel File after save in C# 본문

언어/C#

C# : SaveFileDialog 엑셀 저장 및 열기 How to open Excel File after save in C#

EMDI 2019. 8. 1. 11:30

이번 글에서는 SaveFileDialog를 이용해서 엑셀을 저장하고 난 뒤, 해당 저장한 엑셀 파일을 여는 방법에 대해 설명하도록 하겠습니다. 단순 저장만 하려고 했는데 어쩌다보니 해당 엑셀 파일을 열기까지 해야하더군요...

string fileName = @"엑셀파일저장_" + DateHelper.CurrentDateTime(); 
string filePath = string.Empty; 

SaveFileDialog dialog = new SaveFileDialog(); 

dialog.FileName = fileName; 
dialog.Filter = "Excel 통합 문서|*.xlsx"; 
dialog.InitialDirectory = @"D:\";             // 파일 첨부 화면 로드 시, 디폴트 경로 

if (dialog.ShowDialog() == DialogResult.OK) 
{ 
    filePath = dialog.FileName; 
    gridControl2.DefaultView.ExportToXlsx(filePath); 

    // 저장한 파일 OPEN 소스 
    Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); 
    Excel.Workbook workbook = app.Workbooks.Open(filePath, 0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); 
    Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets.get_Item(1); 
    Excel.Range range = worksheet.UsedRange; 
    app.Visible = true; 
                 
}

range까지 했는데 계속 엑셀 파일이 안열리길래 구글링을 엄청나게 했네요. 알고보니 app.Visible을 true하면 열리는 거였어요...ㅠ정확하게 저거 때문에 열리는 건지는 정확하게 모르겠지만 아무튼 정상적으로 뜨는거 확인 완료!!

* 추가 내용 : 만약 엑셀을 저장한 다음 바로 엑셀을 여는 것이 아니라 저장만 하는 것이면 아래의 소스를 추가해서 처리하는 것 좋음.

// 종료할때는 Excel Application을 종료해준다.
// 해당 처리를 안하면 보이지 않은 엑셀이 종료되지 않음
workbook.Close(false, Type.Missing, Type.Missing);
app.Quit();
Comments