11 พฤษภาคม 2559

VB.Net : Export DataGridView to Excel

คำถามหากเรามีความจำเป็นต้องโอนข้อมูลที่แสดงผลบน VB.Net เข้าสู่ Excel จะทำอย่างไร
คำตอบ อยู่ที่นี่แล้ว
อิๆๆ สั้นๆ ได้ใจความ
1. ให้สร้างโปรเจกต์ขึ้นมาใหม่ จากนั้น ไปที่เมนู PROJECT เลือกรายการ Add Reference...

ที่หน้าต่าง Reference Manager ให้เลือก Extensions แล้วไปคลิกเลือก Microsoft.Office.Interop.Excel

2. จากนั้น สร้าง DataGrideView ชื่อ DataGridView1  แล้วทำอย่างไรก็ได้ตามสะดวกเพื่อนำข้อมูลมาใส่ (อันนี้เขียนโปรแกรมเองน่ะครับ ไม่ขออธิบาย เดี๋ยวจะยาว)

3. ทำการเพิ่มปุ่ม Button สำหรับคลิกเพื่อให้ทำการ Export โดยตั้งชื่อเป็น Button1 ที่เหลือกำหนด Property เอาเอง ดังภาพ

ดับเบิ้ลคลิกที่ปุ่ม แล้วทำการเขียนคำสั่ง ดังนี้

บรรทัดบนสุดก่อน Public Class ของฟอร์ม ให้ Imports ก่อน อย่าลืม โดยพิมพ์คำสั่ง

Imports Excel = Microsoft.Office.Interop.Excel

จากนั้น ที่ Sub Button1 ป้อนคำสั่ง ดังนี้

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim excelLocation As String = "d:\test.xlsx"
        Dim xlApp As Excel.Application = New Microsoft.Office.Interop.Excel.Application()
        If xlApp Is Nothing Then
            MessageBox.Show("Excel is not Install.")
            Return
        End If

        Dim xlWorkBook As Excel.Workbook
        Dim xlWorkSheet As Excel.Worksheet
        Dim misValue As Object = System.Reflection.Missing.Value
        xlWorkBook = xlApp.Workbooks.Add(misValue)
        xlWorkSheet = xlWorkBook.Sheets("sheet1")
        'Header Names
        Dim columnsCount As Integer = DataGridView1.Columns.Count
        For Each column In DataGridView1.Columns
            xlWorkSheet.Cells(1, column.Index + 1).Value = column.Name
        Next
        'Data
        For i As Integer = 0 To DataGridView1.Rows.Count - 1
            Dim columnIndex As Integer = 0
            Do Until columnIndex = columnsCount     
                xlWorkSheet.Cells(i + 2, columnIndex + 1).Value = DataGridView1.Item(columnIndex, i).Value
                columnIndex += 1
            Loop
        Next

        xlWorkBook.SaveAs(excelLocation)
        xlWorkBook.Close()
        xlApp.Quit()
        MessageBox.Show("Export to Excel Complete")
    End Sub


จากนั้นก็สั่งรันโปรแกรมทดสอบ ก็จะได้ไฟล์ชื่อ "d:\test.xlsx" อยู่ที่ไดร์ฟ D:
อยากเก็บไว้ที่ไหนไฟล์อะไรก็แก้เอาน่ะ

สวัสดี มีความสุขทุกวัน

4 ความคิดเห็น:

Unknown กล่าวว่า...

ขอขอบพระคุณอาจารย์อย่างสูงนะคะ
ที่ให้ความรู้ที่มีประโยชน์อย่างมากมาย
ขอบคุณค่ะ

Unknown กล่าวว่า...
ความคิดเห็นนี้ถูกผู้เขียนลบ
Unknown กล่าวว่า...

สุดยอดเลยครับ ผมกำลังหัด .net หลังจากใช้ vb6 มานาน ขอบคุณมากครับอาจารย์

ไม่ระบุชื่อ กล่าวว่า...

ขอบคุณครับ

"I Believe in You"

Copyright(c) 2007 - 2022 by Kasem Kamolchaipisit.