2015년 5월 11일 월요일

C# Excel Read and Write(C#에서 엑셀 읽고 쓰기)


public void WriteExcel()
    // 참조에 Micocoft.Office.Interop.Excel 추가 -> Excel 2003임.
    // 네임스페이스에 다음 추가 "using Excel = Microsoft.Office.Interop.Excel;"
 
    // 자주 사용하는 Type.Missing 미리 정의 해놓음.
    object TypMissing = Type.Missing;
    // Excel Application 정의
    Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();
 
    
    Excel.Workbook _workbook = null;
    // 파일이 존재 하면 열고, 없으면 새로 만듬.
    if (File.Exists(@"c:\Test.xls"))
    {
        _workbook = ExcelApp.Workbooks.Open(@"c:\Test.xls", TypMissing, TypMissing, TypMissing, TypMissing,
            TypMissing, TypMissing,
            TypMissing, TypMissing, TypMissing, TypMissing, TypMissing, TypMissing, TypMissing, TypMissing);
    }
    else
    {
        // Add Work Book
        _workbook = ExcelApp.Workbooks.Add(Type.Missing);
        // Save Excel File
        _workbook.SaveAs(@"c:\Test.xls", Excel.XlFileFormat.xlWorkbookNormal, TypMissing, TypMissing,
       TypMissing, TypMissing, Excel.XlSaveAsAccessMode.xlNoChange,
       TypMissing, TypMissing, TypMissing, TypMissing, TypMissing); 
    }
 
    // 읽어들인 Excel에서Sheet1을 가져옴. item 이름이 정확 해야함.
    Excel.Worksheet Sheet = (Excel.Worksheet)_workbook.Worksheets.get_Item("Sheet1");
    Excel.Range Range_ = Sheet.get_Range("A1", Type.Missing);
 
    Sheet.Cells[11= "이름";
    Sheet.Cells[12= "전화번호";
    Sheet.Cells[13= "주소"
    
    //Sheet.Rows.AutoFit();
    Sheet.Columns.AutoFit(); // 글자 크기에 맞게 셀 크기를 자동으로 조절.
    //Range_.Rows.AutoFit();
    //Range_.Columns.AutoFit();               
    _workbook.Save(); 
 
    ExcelApp.Workbooks.Close(); // 별효과 없음.
    ExcelApp.Quit();            // 별효과 없음.
 
    // 강제로 Excel Porcess종료하기.
    Process[] ExCel = Process.GetProcessesByName("EXCEL");
    if (ExCel.Count() != 0)
    {
        MessageBox.Show("Detect EXCEL");
        ExCel[0].Kill();
    } 
}

댓글 없음:

댓글 쓰기