-
C# DataGridView 엑셀 출력 빠르게 하기 (복사&붙여넣기)프로그래밍/C# 2018. 7. 20. 16:13
이전에 포스팅한
2017/05/24 - [프로그래밍/C#] - C# DataGridView 데이터 엑셀파일에 저장 using oledb
은 데이터그리드뷰의 데이터를 엑셀파일로 출력할 때 속도가 느리다는 단점이 있다.
어떻게 하면 빠르게 출력할 수 있을까...
데이터그리드뷰 자체를 복사해서 엑셀파일에 그대로 옮겨놓을 수 있을까...
하다가 찾아낸 방법이다.
아래의 ExportExcel 메소드를 사용하면 된다.
private void ExportExcel(string filename){// Copy from DataGridView// 데이타그리드뷰를 전체선택하고, 클립보드에 복사한다.dataGridView1.SelectAll();DataObject dataObj = dataGridView1.GetClipboardContent();if (dataObj != null) Clipboard.SetDataObject(dataObj);// Paste in Excel// 엑셀시트에 클립보드에 있는 걸 붙여넣기하고 저장한다.// xlApp.Visible = true를 주석처리 하여 실시간 엑셀파일 보기 끔.// 저장 중인 엑셀파일을 바로 보려면 주석을 푼다.Excel.Application xlApp;Excel.Workbook xlWorkBook;Excel.Worksheet xlWorkSheet;object misValue = System.Reflection.Missing.Value;xlApp = new Excel.Application();//xlApp.Visible = true;xlWorkBook = xlApp.Workbooks.Add(misValue);xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);Excel.Range CR = (Excel.Range)xlWorkSheet.Cells[1, 1];CR.Select();xlWorkSheet.PasteSpecial(CR, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true);xlWorkBook.SaveAs(filename, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing);xlApp.Quit();}cs 엑셀라이브러리 참조하는 방법은 아래 포스팅 참고
2018/01/10 - [프로그래밍/C#] - C# 엑셀파일 가져오기 using Microsoft.Office.Interop.Excel (DataGrdiVeiw에 바인딩 포함)
'프로그래밍 > C#' 카테고리의 다른 글
C# 16진수를 10진수로 변환하기 (0) 2018.08.14 C# 숫자 세자리마다 콤마(쉼표)찍기 (0) 2018.08.02 C# DataGridView 엑셀 출력 빠르게 하기 (복사&붙여넣기) (1) 2018.07.20 C# 폼 캡처, 자식 폼 캡처 (0) 2018.07.18 C# goto문 작성방법 (0) 2018.06.28 C# SqlDependency 사용 중에... (0) 2018.06.21 TAG
관리자의 승인을 기다리고 있는 댓글입니다