Diễn Đàn » Hướng Dẫn Lập trình

Đọc file Excel với ADO.NET_trong VB.NET

0 trả lời, 665 lượt xem — Trang 1 / 1
<Bài viết đã được chỉnh sửa lúc 2007-03-14 03:29:12dvbooks>
Vấn đề:  Bạn muốn thu lấy hay chèn dữ liệu vào một tài liệu Microsoft Excel bằng ADO.NET.
Giải quyết:  Sử dụng ODBC .NET provider kết hợp với Microsoft Excel ODBC Driver.
Không có OLE DB provider hay provider được-quản-lý nào cho Excel. Tuy nhiên, bạn có thể sử dụng Microsoft Excel ODBC Driver (được cài đặt mặc định cùng với Excel) kết hợp với ODBC .NET provider (đi kèm với .NET Framework 1.1Visual Studio .NET 2003).
Trong chuỗi kết nối, bạn cần chỉ định driver mà bạn đang sử dụng và tên file Excel. Ví dụ dưới đây chỉ đến file test.xls trong thư mục startup của ứng dụng:


Private ConnectionString As String = _
  "Driver={Microsoft Excel Driver (*.xls)};DriverId=790;" & _
  "Dbq=" & Application.StartupPath & "\test.xls;"


Sau khi kết nối, bạn có thể thực hiện hai kiểu thao tác: SELECT hay INSERT. Thay vì sử dụng bảng, bạn chọn hay chèn dựa vào tên sheet. Tên sheet phải kết thúc bằng dấu đô la ($) và được đặt trong dấu ngoặc vuông (nếu không, sẽ sinh ra lỗi cú pháp). Định dạng bị bỏ qua, và hàng đầu tiên tự động được sử dụng làm các tên cột.
Ví dụ dưới đây trích và hiển thị tất cả các hàng trong Sheet1.

Private Sub ExcelView_Load(ByVal sender As System.Object, _  ByVal e As System.EventArgs) Handles MyBase.Load
    Dim Con As New OdbcConnection(ConnectionString)
    Dim CmdSelect As New OdbcCommand("SELECT * FROM [Sheet1$]", Con)
    Dim Adapter As New OdbcDataAdapter(CmdSelect)
    Dim Ds As New DataSet
    Try       
Con.Open()       
Adapter.Fill(Ds, "Sheet1")   
Catch Err As Exception       
MessageBox.Show(Err.ToString())
    Finally       
Con.Close()   
End Try    
grid.DataSource = Ds.Tables("Sheet1") 
End Sub

Một cách tiếp cận khác là sử dụng Automation để vận hành Excel thông qua các giao diện COM do nó cung cấp. Cách này đòi hỏi bạn sử dụng COM Interop và các đối tượng của Excel, và chỉ làm việc khi Excel đã được cài đặt trên máy tính. Tuy vậy, nó cung cấp rất nhiều chức năng cho việc tương tác với dữ liệu bảng tính.
 
Trích từ "Các giải pháp lập trình Visual Basic. Net (tập 2)"
Đăng nhập để trả lời
0