Lấy Dữ Liệu Từ Excel Vào VB6.0 để Xử Lý

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Moderator: tungblt

Post Reply
truong678
Thành viên chính thức
Thành viên chính thức
Posts: 18
Joined: Sun 18/08/2013 10:07 pm
Has thanked: 6 times

Lấy Dữ Liệu Từ Excel Vào VB6.0 để Xử Lý

Post by truong678 »

Chào Mọi Người. Mọi người giúp mình với.
Mình tìm tài liệu cách làm miết mà vẫn chưa biết phải làm thế nào, mong mọi người giúp đỡ rất nhiều. Mình đang rất cần.
Bài Toàn :
1- Trong File Excel : dữ liệu gồm 2 : cột a và cột b.
2- VB : mình muốn lấy dữ liệu từ file Excel vào VB6.0 để tính toán : a + b , a - b ... Trong vb có hiển thị được bảng dữ liệu excel mới nhập.

Xin cảm ơn mọi người.
User avatar
gtdcomputer
Thành viên danh dự
Thành viên danh dự
Posts: 1296
Joined: Fri 18/07/2008 12:08 pm
Location: Kiên Giang
Has thanked: 8 times
Been thanked: 116 times
Contact:

Re: Lấy Dữ Liệu Từ Excel Vào VB6.0 để Xử Lý

Post by gtdcomputer »

Ví dụ về đọc dữ liệu từ Excel: https://blogs.msdn.microsoft.com/rahuls ... e-content/
Tóm tắt là thế này:
- Mở một tập tin exel:
  1. Dim xlsApp As Object
  2. Dim xlsWB1 As Object
  3. Dim xlsWS1 As Object
  4. ‘Opening the file to parse now
  5. Set xlsApp = CreateObject(“Excel.Application”) '---> Tạo một tiến trình exel ngầm
  6. xlsApp.Visible = False '---> Không hiện ko hiển thị cửa sổ exel đã tạo
  7. Set xlsWB1 = xlsApp.Workbooks.Open("C\ex.xls") '---> Mở tập tin excel
  8. Set xlsWS1 = xlsWB1.Worksheets(“Sheet1”) '---> Mở sheet chứa dữ liệu cần lấy.

- Để đọc 1 ô trong exel thì đọc thế này: xlsWS1.cells(<dòng>, <cột>).Value
- Trường hợp của bạn chỉ có 2 cột thì dùng 1 vòng lặp đơn:
  1. Dim i As Integer = 1
  2. While Trim(xlsWS1.cells(i, 1).Value) & Trim(xlsWS1.cells(i, 2).Value) <> "" '---> Lặp đến khi cả 2 cell đều rỗng
  3.        Dim a As Integer = Val(xlsWS1.cells(i, 1).Value)
  4.         Dim b As Integer = Val(xlsWS1.cells(i, 2).Value)
  5.         '---------------------------
  6.        'Do something with your a and b
  7.  
  8.  
  9.         i = i + 1
  10. Wend

- Sao khi hoàn thành thì đóng workbook và exel lại để giải phóng tài nguyên:
  1. xlsWB1.Close
  2. xlsApp.Quit
  3. Set xlsApp = Nothing
  4. Set xlsWB1 = Nothing
  5. Set xlsWS1 = Nothing
- Khi truy xuất với các biến workshet, workbook thì VB sẽ ko tự động hoàn thành hàm như các hàm khác vì mình khai báo là biến Object nên đừng thấy nó ko tự hoàn thành thì nghĩ là nó ko đúng.

Để hiển thị thì bạn có thể vừa đọc, vừa add item vào listview. Hình như có thể feed bằng dataset như mình ko rành lắm :v, trc giờ toàn add thủ công

PS: Kiểm chứng code trc khi áp dụng. Vì lâu rồi m ko đụng vào VB6 =))
Con người không quan tâm đến sự thật. Họ tin cái họ muốn, và về sau, cái đó sẽ trở thành sự thật
truong678
Thành viên chính thức
Thành viên chính thức
Posts: 18
Joined: Sun 18/08/2013 10:07 pm
Has thanked: 6 times

Re: Lấy Dữ Liệu Từ Excel Vào VB6.0 để Xử Lý

Post by truong678 »

tuyệt vời quá bạn ơi. Cảm ơn bạn rất nhiều. Mình có ý tưởng để viết về bài toán này để phục vụ học tập và công việc của mình rồi.
Để mình thử lại code bạn hướng dẫn thử. :) .Mừng quá.

Để hiển thị cơ sở dữ liệu. Nếu add item vào listview có thể nó sẽ hiển thị ko thành bảng, sẽ khó nhìn nếu CSDL lớn. (mình đoán vậy). Mình thấy có tài liệu hướng dẫn kết nối CSDL sử dụng ADO Data Control (cơ mà nó kết nối với Access :d).
He he, mình chỉ biết VB qua việc học mò mẫm nên nhiều thuật ngữ, câu lệnh mình ko hiểu bản chất nó lắm, nên nghiên cứu hơi khó khắn.:).
truong678
Thành viên chính thức
Thành viên chính thức
Posts: 18
Joined: Sun 18/08/2013 10:07 pm
Has thanked: 6 times

Re: Lấy Dữ Liệu Từ Excel Vào VB6.0 để Xử Lý

Post by truong678 »

https://drive.google.com/file/d/0B64bhA ... sp=sharing
Mình gửi mn file tài liệu mình thấy VB hay vè kết nối CSDL với VB (kết nối Access).
Post Reply

Return to “Visual Basic 6 và Visual Basic Script (VB & VBS)”