- [VB.NET] Chia sẻ source code lịch âm dương và hẹn lịch nhắc việc
- [C#] Hướng dẫn đọc thông số thiết bị Thiết bị kiểm tra Pin (HIOKI BATTERY HiTESTER BT3562)
- [VB.NET] Hướng dẫn giải captcha sử dụng dịch vụ AZCaptcha API trên winform
- [C#] Hướng dẫn chứng thực đăng nhập ứng dụng bằng vân tay (Finger Print) trên máy tính
- [C#] Color Thief cách xuất màu sắc thiết kế từ hình ảnh
- [C#] Cách tạo bản quyền và cho phép dùng thử ứng dụng Winform
- [C#] Hướng dẫn sử dụng trình duyệt web Chrome convert HTML sang tập tin file PDF
- [C#] Kết nôi điện thoại Android, IOS với App Winform via Bluetooth
- [DATABASE] Cách query cộng trừ dồn dần trong Sqlserver
- [C#] Thiết kế ứng dụng Console đẹp với thư viện Spectre.Console
- [C#] Thiết kế ứng dụng Single Instance và đưa ứng dụng lên trước nếu kiểm tra ứng dụng đang chạy
- [C#] Giới thiệu JSON Web Token và cách đọc chuỗi token
- [C#] Cách tăng giảm font chữ tất cả các control trên winform
- [DEVEXPRESS] Tích hợp chức năng Tìm kiếm Search vào CheckedComboboxEdit
- [C#] Gởi email Metting Calendar Reminder kèm nhắc thời gian lịch họp
- [C#] Tìm kiếm xem danh sách từ khóa có tồn tại trong đoạn văn bản hay không
- [C#] Thiết kế giao diện ứng dụng trên Console sử dụng thư viện Terminal.Gui
- [C#] Hướng dẫn tạo mã VietQR Payment API Winform
- [C#] Sử dụng thư viện BenchmarkDotNet đo hiệu năng của hảm Method
- [DEVEXPRESS] Tìm kiếm không dấu tô màu highlight có dấu trên C# Winform
Hướng dẫn xuất database ra file excel có định dạng
Hôm nay, mình xin hướng các bạn xuất file excel có định dạng từ cơ sở dữ liệu. vd: kẻ ô viền, chọn font chữ đậm, canh lề trái phải, canh độ rộng và độ cao của từng cell, chèn hình ảnh vào file excel.
Bỏ những thuộc tính của ứng dụng excel như: Gridline, Formular (Thanh công thức) ....
Dưới đây là video demo của ứng dụng:
Đầu tiên bạn cần phải import thư viện vào
Dưới đây là source chương trình
- Các bạn cần import thư viện database sql server vào excel
Imports System.Data.SqlClient
Imports Excel = Microsoft.Office.Interop.Excel
- Khai báo biến kết nối database và lấy đường dẫn thư mục từ file chạy (debug)
Dim con As New SqlConnection
Dim directory As String = My.Application.Info.DirectoryPath
- Tạo hàm kết nối cơ sở dữ liệu
Public Sub taoketnoi()
con.ConnectionString = "Data Source=DESKTOP-5ANBA4H;Initial Catalog=HOB;Integrated Security=True"
con.Open()
End Sub
- Tạo hàm đóng kết nối
Public Sub dongketnoi()
con.Close()
End Sub
- Tạo hàm lấy dữ liệu từ database, ở đây mình sử dụng datatable
Public Function LayDulieu() As System.Data.DataTable
taoketnoi()
Dim dt As New System.Data.DataTable
Dim da As New SqlDataAdapter
da.SelectCommand = New SqlCommand("select manv as [Mã NV], hoten as [Họ và tên],ngaysinh as [Ngày sinh], chucvu as [Chức vụ], tenphongban as [Phòng ban] from view_user where manv>0", con)
da.Fill(dt)
dongketnoi()
Return dt
End Function
- Hàm load dữ liệu vào datagridview
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim dt As System.Data.DataTable = LayDulieu()
DataGridView1.DataSource = dt
End Sub
- Tiếp tục là viết nút xử lý database ra file excel có định dạng.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim xlApp As Excel.Application = New Microsoft.Office.Interop.Excel.Application()
If xlApp Is Nothing Then
MessageBox.Show("Excel is not properly installed!!")
Return
End If
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
Dim chartRange As Excel.Range
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")
xlWorkSheet.Shapes.AddPicture(directory & "logo.png", _
Microsoft.Office.Core.MsoTriState.msoFalse, _
Microsoft.Office.Core.MsoTriState.msoCTrue, 0, 0, 79, 59)
xlWorkSheet.Range("a2", "f2").Merge()
xlWorkSheet.Cells(2, 1) = "DANH SÁCH THÀNH VIÊN LẬP TRÌNH VB.NET"
xlWorkSheet.Cells(2, 1).VerticalAlignment = Excel.Constants.xlCenter
xlWorkSheet.Cells(2, 1).HorizontalAlignment = Excel.Constants.xlCenter
xlWorkSheet.Cells(2, 1).Font.Size = 18
xlWorkSheet.Cells(2, 1).Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Blue)
xlWorkSheet.Cells(2, 1).Font.Bold = True
Dim dt As System.Data.DataTable = LayDulieu()
Dim dc As DataColumn
Dim dr As DataRow
Dim colIndex As Integer = 1
Dim rowIndex As Integer = 3
Dim stt As Integer = 0
'// tên tiêu đề table
xlWorkSheet.Cells(4, 1) = "STT"
For Each dc In dt.Columns
colIndex = colIndex + 1
xlWorkSheet.Cells(4, colIndex) = dc.ColumnName
Next
'export the rows
For Each dr In dt.Rows
stt = stt + 1
rowIndex = rowIndex + 1
colIndex = 1
For Each dc In dt.Columns
colIndex = colIndex + 1
xlWorkSheet.Cells(rowIndex + 1, 1) = "'" & stt & "."
If colIndex = 2 Then
xlWorkSheet.Cells(rowIndex + 1, colIndex) = "'" & dr(dc.ColumnName)
Else
xlWorkSheet.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName)
End If
Next
Next
xlWorkSheet.Range("a1", "z200").RowHeight = 20
xlWorkSheet.Cells(4, 1).VerticalAlignment = Excel.Constants.xlCenter
xlWorkSheet.Cells(4, 1).HorizontalAlignment = Excel.Constants.xlCenter
xlWorkSheet.Range("a5", "a200").HorizontalAlignment = Excel.Constants.xlCenter
xlWorkSheet.Range("a5", "a200").Font.Bold = True
chartRange = xlWorkSheet.Range("a4", "f4")
chartRange.EntireColumn.AutoFit()
chartRange.Font.Bold = True
chartRange.RowHeight = 25
chartRange.Font.Size = 14
xlWorkSheet.Range("a1", "z20").VerticalAlignment = Excel.Constants.xlCenter
xlWorkSheet.Range("a1", "z1").HorizontalAlignment = Excel.Constants.xlCenter
chartRange.HorizontalAlignment = Excel.Constants.xlCenter
chartRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red)
chartRange.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Yellow)
xlWorkSheet.Range("c4", "c149").Font.Bold = True
xlWorkSheet.Range("a4", "f149").Borders.LineStyle = Excel.XlLineStyle.xlContinuous
xlWorkSheet.Range("a4", "f149").Borders.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Orange)
xlWorkSheet.Range("a4", "f149").Borders.Weight = 2D
xlWorkSheet.Cells.EntireColumn.AutoFit()
xlApp.ActiveWindow.DisplayGridlines = False
xlApp.ActiveWindow.DisplayFormulas = False
xlApp.ActiveWindow.DisplayHeadings = False
xlWorkBook.SaveAs(directory & "danhsachthanhvien.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue)
xlWorkBook.Close(True, misValue, misValue)
xlApp.Quit()
releaseObject(xlApp)
releaseObject(xlWorkBook)
releaseObject(xlWorkSheet)
Process.Start(directory & "danhsachthanhvien.xls")
End Sub
- Và cuối cùng là hàm thoát đối tượng kết nối với excel
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
Chúc các bạn thành công!