Chủ Nhật, 16 tháng 1, 2011

Trích dữ liệu bảng tính Excel sử dụng ASP

Bạn có thể lưu dữ liệu trong một bảng tính của Microsoft Excel và sau đó sử dụng ASP để chiết xuất thông tin.. Các bảng tính hoạt động giống như là các cơ sở dữ liệu và bạn có thể sử dụng các câu lệnh SQL chuẩn để truy vấn dữ liệu. Việc xử lý khá là đơn giản và tôi chia nó ra thành ba bước như sau:…

Bước 1: Tạo bảng tính Excel.
Bước 2: Xác định phạm vi trong bảng tính
Bước 3: Viết mã ASP để đọc file.

Bước 1:

Tạo một thư mục tên là excel trong thư mục C:\Inetpub\wwwroot\ và đó cũng là nơi chúng ta sẽ tạo và lưu file bảng tính Excel.
a. Mở Excel và tạo bảng tính giả sử có các cột SR, NAME, và EMAIL như hình vẽ.

b. Khi chúng ta truy vấn dữ liệu từ bảng tính, chúng ta có thể giới hạn các kết quả bằng cách chọn một hay nhiều cột dữ liệu. 
Ví dụ như 
SELECT NAME FROM my_range.

Còn trong ví dụ này tôi dùng câu lệnh truy vấn: SELECT * FROM [Sheet1$] (Sheet1 là tên của bảng tính).

Bước 2:

Để xác định phạm vi trong Excel mà chúng ta sẽ xem như là một bảng trong câu lệnh SQL, chọn tất cả các trường có chứa dữ liệu trong đó, bao gồm cả tên cột, sau đó thao tác:Insert > Name > Define > Gõ tên my_range > Nhấn OK > Lưu file này vào đường dẫn C:\inetpub\wwwroot\excel\excel.xls. Đây là bước rất quan trọng nhằm mục đích chúng ta tạo ra bảng dữ liệu để truy xuất nó sau này.

Bước 3:

Bây giờ là lúc chúng ta có file excel và một vùng dữ liệu đã được đặt tên trong đó, chúng ta có thể bắt đầu viết mã ASP. Bạn nhúng đoạn mã sau đây vào trong file .asp rồi chạy file này.

  1. <% 
  2. ‘ Set Connection Params 
  3. Set oConn = Server.CreateObject("ADODB.connection") 
  4. oConn.Open "Driver={Microsoft Excel Driver (*.xls)}; DriverId=790;DBQ=c:\Inetpub\wwwroot\excel\excel.xls;DefaultDir = C:\Inetpub\wwwroot\excel\" 
  5.  
  6. Set RS=Server.CreateObject("ADODB.recordset") 
  7.  
  8. Write the SQL Query 
  9. RS.open "SELECT * FROM [Sheet1$]", oConn 
  10.  
  11.  
  12. do until RS.EOF 
  13. Response.Write ( RS("NAME") & "" & RS("EMAIL") & "") 
  14. RS.movenext 
  15. Loop 
  16.  
  17. ‘Close the recordset/connection 
  18.  
  19. RS.Close 
  20. oConn.Close 
  21. Set RS = Nothing 
  22. %>   

Kết quả in ra sẽ được như sau. Rất tuyệt phải không nào? Tất nhiên các bạn có thể tùy biến theo bất cứ cách hiển thị nào mà bạn mong muốn rồi! 

[HaiPhong-Aptech]

Không có nhận xét nào:

Đăng nhận xét

Bài đăng phổ biến