Export to Excel in VB.Net

Các mẹo vặt linh tinh không thuộc các nhóm trên

Các điều hành viên: tungcan5diop, QUANITGROBEST

Đăng trả lời
Hình đại diện của thành viên
manhhung87
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 320
Ngày tham gia: Thứ 6 30/05/2008 8:47 am
Đến từ: Ha Noi University of Industry
Been thanked: 1 time
Tiếp xúc:

Export to Excel in VB.Net

Gửi bài by manhhung87 »

Thủ thuật: Export to Excel in VB.Net
Tác giả: Sưu tầm
Mô tả: lượt web tìm hiểu được vấn đề này tuy cũ nhưng mình cứ post lên cho mọi người tham khao. Mình làm cái này khi xuất ra Excel thì tự đông giãn cột theo độ dài của bản ghi. Nhưng vẫn chưa giải quyết dc vấn đề là kẻ khung cho đẹp. Vậy mọi người và viết thêm cho mình phần kẻ khung nhé, hihi
  1.  
  2.  Public Sub Export_to_Excel(ByVal _DataSet As DataTable, ByVal _List_Col As String, ByVal Path As String)
  3.         '- _Dataset lưu dữu liệu cần Export
  4.         '- _List_Col Danh sách tên cột hiển thị. Tên cột cách nhau dấu ','
  5.         '- Path Đường dẫn lưu file excel
  6.  
  7.         Dim col, row As Integer
  8.         Dim arrListcol() As String
  9.         arrListcol = _List_Col.Split(",")
  10.  
  11.         If _DataSet.Rows.Count <= 0 Then
  12.             Exit Sub
  13.         End If
  14.  
  15.         Dim Excel As Object = CreateObject("Excel.Application")
  16.         If Excel Is Nothing Then
  17.             MessageBox.Show("Để xuất ra Excel, máy bạn phải cài đặt bộ phần mềm Microsoft Office.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning)
  18.             Return
  19.         End If
  20.  
  21.         'Export to Excel process
  22.         Try
  23.             With Excel
  24.                 .SheetsInNewWorkbook = 1
  25.                 .Workbooks.Add()
  26.                 .Worksheets(1).Select()
  27.  
  28.                 Dim i As Integer = 2
  29.                 .cells(2, i).value = "STT"
  30.                 .cells(2, i).EntireRow.Font.Bold = True
  31.                 For col = 0 To arrListcol.Length - 1
  32.                     i += 1
  33.                     .cells(2, i).value = arrListcol(col).ToUpper()
  34.                     .cells(2, i).EntireRow.Font.Name = "Times New Roman"
  35.                     .cells(2, i).EntireRow.Font.Size = 12
  36.                     .cells(2, i).EntireRow.Font.Bold = True
  37.                 Next
  38.                 i = 3
  39.                 Dim k As Integer = 3
  40.  
  41.                 For col = 0 To _DataSet.Columns.Count - 1
  42.                     i = 3
  43.  
  44.                     For row = 0 To _DataSet.Rows.Count - 1
  45.                         .Cells(i, 2).Value = i - 2
  46.                         .Cells(i, k).Value = _DataSet.Rows(row).ItemArray(col)
  47.                         i += 1
  48.                     Next
  49.                     k += 1
  50.                 Next
  51.                 .Columns.AutoFit()
  52.                 .ActiveCell.Worksheet.SaveAs(Path)
  53.             End With
  54.             System.Runtime.InteropServices.Marshal.ReleaseComObject(Excel)
  55.             Excel = Nothing
  56.             MessageBox.Show("Xuất dữ liệu thành công.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information)
  57.  
  58.         Catch ex As Exception
  59.             MsgBox(ex.Message)
  60.         End Try
  61.  
  62.         Dim pro() As Process = System.Diagnostics.Process.GetProcessesByName("EXCEL")
  63.         For Each i As Process In pro
  64.             i.Kill()
  65.         Next
  66.  
  67.     End Sub
Công cụ quản trị website.
http://www.vnkweb.com
HaiPT
VIP
VIP
Bài viết: 259
Ngày tham gia: Thứ 4 07/09/2005 4:02 pm
Has thanked: 3 times
Been thanked: 14 times

Re: Export to Excel in VB.Net

Gửi bài by HaiPT »

Bạn bật chức năng record macro trong excel rồi kẻ khung bằng tay.. sau đó vào stop recording rồi view macro source là biết ngay cần code thế nào.
Hải .
Đăng trả lời

Quay về