winform 엑셀 저장(초고속) 클립보드 캡쳐방식입니다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | private void Export_Excel(string path) //savefildialog.filename { //xls는 65536, xlsx는 1048575 dataGridView1.MultiSelect = true; dataGridView1.RowHeadersVisible = false; dataGridView1.AllowUserToAddRows = false; dataGridView1.SelectAll(); DataObject dataObj = dataGridView1.GetClipboardContent(); if (dataObj != null) { Clipboard.SetDataObject(dataObj); } Excel.Application xlexcel; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = Missing.Value; xlexcel = new Excel.Application(); xlexcel.Visible = false; xlWorkBook = xlexcel.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); dataGridView1.MultiSelect = false; if (path.Contains(".xlsx")) { xlWorkBook.SaveAs(path, Excel.XlFileFormat.xlWorkbookDefault, null, null, false, false, Excel.XlSaveAsAccessMode.xlShared, false, false, null, null, null); } else { xlWorkBook.SaveAs(path, Excel.XlFileFormat.xlWorkbookNormal, null, null, false, false, Excel.XlSaveAsAccessMode.xlShared, false, false, null, null, null); } dataGridView1.ClearSelection(); xlexcel.Quit(); releaseObject(CR); releaseObject(xlWorkSheet); releaseObject(xlWorkBook); releaseObject(xlexcel); MessageBox.Show("저장완료"); } | cs |
'Winform' 카테고리의 다른 글
winform 각 행의 색표시 (0) | 2019.01.30 |
---|---|
winform 차트 예제 (0) | 2019.01.30 |
winform 엑셀 죽이기 완벽한 방법 (0) | 2019.01.29 |
winform DataGridView to Excel (0) | 2019.01.22 |
winform 엑셀 import (0) | 2019.01.17 |