Imports Microsoft.Office.Interop.Excel
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
Private Const V As Integer = 2
'DataGridView 열 제목 작성
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
DataGridView1.ColumnCount = V
DataGridView1.Columns(0).Name = "이름"
DataGridView1.Columns(1).Name = "주소"
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
Dim i As Integer
Dim j As Integer
SaveFileDialog1.Title = "Save File"
SaveFileDialog1.initialDirectory = "C:\Work\" ' 생성할 위치
SaveFileDialog1.FileName = "Test.xlsx" ' 엑셀 이름 지정
SaveFileDialog1.Filter = "ExcelFile|*.xlsx" ' 엑셀 버전설정(2007 이전버전 *.xls/ 2007 이후버전 *.xlsx)
If SaveFileDialog1.ShowDialog = System.Windows.Forms.DialogResult.OK Then
xlApp = New Application
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")
' 저장 속도 나타내는 바(없애도 됨)
ProgressBar1.Visible = True
ProgressBar1.Minimum = 0
ProgressBar1.Maximum = DataGridView1.RowCount - 1
For i = 0 To DataGridView1.RowCount - 1
For j = 0 To DataGridView1.ColumnCount - 1
xlWorkSheet.Cells(1, j + 1) = DataGridView1.Columns(j).HeaderText
xlWorkSheet.Cells(i + 2, j + 1) = DataGridView1(j, i).Value?.ToString()
ProgressBar1.Value = i
Next
Next
xlWorkSheet.SaveAs(SaveFileDialog1.FileName)
xlWorkBook.Close()
xlApp.Quit()
releaseObject(xlApp)
releaseObject(xlWorkBook)
releaseObject(xlWorkSheet)
MessageBox.Show("파일은 " & SaveFileDialog1.FileName & "에서 찾을 수 있습니다.")
Else
MessageBox.Show("파일 저장을 취소했습니다")
End If
ProgressBar1.Visible = False
End Sub
Private Sub releaseObject(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
Finally
GC.Collect()
End Try
End Sub
End Class
댓글