
Hướng Dẫn Đọc File Excel, Table Trong GUI Matlab
Trong bài viết hôm nay chúng ta cùng làm việc với file Excel học cách đọc, ghi, hiện thị dữ liệu từ Excel nên giao diện GUI của phần mền Matlab và ngược lại. Và tiện thể chúng ta học cách sử dụng đối tượng Table được tích hợp trong GUI.

| Hướng dẫn đọc ghi Excel
Như bạn đã biết thì Excel nằm trong bộ Office của Microsoft và không riêng gì dân kế toán, kỹ thuật, dân lập trình chúng ta cũng sử dụng đến nó rất nhiều. Vậy đối với chúng ta đang học lập trình GUI cũng vậy. Để bạn có một cách tiếp cận đơn giản thì ta sẽ tiến hành đọc file Excel.
Giả sử ta có một giao diện như hình dưới. Để cho bạn không phải nhàn chán nên giao diện này VuTienIT xin được xây dựng trước. Nếu bạn theo dõi từ bài 1 đến giờ thì giao diện hình dưới đây chắc có lẽ không quá khó khăn đối với bạn.

1. Đọc File Excel
Oke. Vấn đề chúng ta đó là lấy dữ liệu từ một file excel nào đó và đổ các giá trị vào Exdittext có Label là B,C,D theo Get Value Excel mà ta lựa chọn.
Giả sử ta có file Excel có tên là VuTienIT_Excel.xlsx và có các giá trị là kiểu số nguyên và có 4 cột đó là A,B,C,D.

Ở trong đối tượng Popup menu có string là Get Value Excel bạn hãy tự điền các giá trị ở cột A vào. (Gía trị bạn có thể đặt gì cũng được không nhất thiết phải là A1, A2,…). Nguyên sao đủ 10 dòng vì trong file Excel của chúng ta có 10 dòng

a. Đọc dữ liệu
Bây giờ chúng ta cùng tiến hành viết code để lấy dữ liệu.
Bạn hãy mở đến function của Popup Menu Get Value Excel và tiến hành gõ các đoạn code sau
dirFileName = 'VuTienIT_Excel.xlsx'; sheet = 1; getValue = xlsread(dirFileName, sheet); valueExcel = get(handles.popupmenu1, 'value') - 1;
Trong đó:
- dirFileName: Tên File Excel mà bạn muốn đọc (File này thường đặt ở cùng thư mục file .m mà ta đang lập trình)
- sheet: Trong Excel thì sẽ có nhiều sheet bởi vậy ta cần xác định xem dữ liệu đang ở sheet nào? Bạn nhìn hình phía trên (Hình giao diện) là bạn sẽ hiểu.
- xlsread: Hàm này có chức năng là đọc file Excel (Nó sẽ nhận giá trị của mỗi ô là kiểu số nguyên)
b. Đổ dữ liệu ra đối tượng nào đó
Khi ta đã có dữ liệu được gán vào biến valueExcel rồi. Thì nhiệm vụ tiếp theo đó là đổ dữ liệu này ra đối tượng. Ở đây VuTienIT sử dụng Edittext có nhãn B,C,D bên cạnh.
cotB = getValue(valueExcel, 1); set(handles.text1, 'string', num2str(cotB)); cotC = getValue(valueExcel, 2); set(handles.text2, 'string', num2str(cotC)); cotD = getValue(valueExcel, 3); set(handles.text3, 'string', num2str(cotD));
Trong đó:
- getValue(valueExcel, 1): 1 là vị trí thứ nhất. 2, 3 cũng tương tự
- num2str: Chuyển đổi kiểu số sang chuỗi
Về các vị trí thì bạn nhìn hình dưới đây bạn sẽ hiểu

Đây là toàn bộ Code của Popup Menu có tên là VuTienIT_Excel.xlsx

Giờ bạn tiến hành chạy trương trình nên và xem kết quả thế nào nhé!

2. Ghi File Excel
Vấn đề Ghi File thì bạn cần hiểu như sau. Đó là ta sử dụng giao diện GUI để lập trình tự động ghi dữ liệu nào đó vào file Excel.
Để đơn giản hơn thì ta sẽ lấy dữ liệu từ biến getValue để đổ vào Excel (Dữ liệu có thể số, chuỗi,…)
Bạn hãy mở đến Function có string là “Ghi Du Lieu Excel” và viết code
dirFileName = 'VuTienIT_Excel.xlsx'; sheet = 1; getValue = xlsread(dirFileName, sheet); xlswrite('VuTienIT_Excel_Out.xls', getValue, 1, ['A' num2str(1)]);
Trong đó:
- Một số câu lệnh thì ta đã học bên trên rồi thì VuTienIT xin khong được nhắc lại
- xlswrite: Hàm ghi file
- ‘VuTienIT_Excel_Out.xls’: Tên File bạn muốn ghi vào (Nằm cùng thư mục .m). Nếu chưa có file này thì phần mền Matlab tự động tạo ra
- ‘getValue’: Giá trị mà bạn muốn đổ dữ liệu vào
- 1 là sheet thứ nhất
- ‘A’ Bắt đầu ghi vào Cột A trong phần mền Excel
- num2str(1): Bắt đầu ghi vào dòng thứ nhất.
Đây là hình ảnh code của đối tượng nút nhấn này

Và đây là thành quả ta đạt được

Cũng khá là đơn giản phải không nào?
| Hướng dẫn ghi dữ liêu ra Table
Ở trong bài viết trước VuTienIT đã hướng dẫn đến bạn cách sử dụng table trong trong GUI rồi. Nhưng chưa hướng dẫn bạn cách đổ dữ liệu vào bảng. Vậy trong bài này ta sẽ học cách đổ dữ liệu vào Table trong giao diện.
Thì cũng ở hình giao diện trên thì ta đã xây dựng sẵn một bảng rồi. Nhiệm vụ ta cần làm đó là nhấn vào nút có string là “Ghi Du Lieu Tabe” thì sẽ ghi dữ liệu.
Oke bây giờ bạn hãy mở Function của string “Ghi Du Lieu Tabe” nên và viết đoạn code sau
data{1, 1} = 'VuTienIT'; data{1, 2} = 1; data{1, 3} = 1.2; data{1, 4} = 3/5; data{2, 1} = 'vutienblog.com'; set(handles.uitable1, 'Data', data);
Trong đó:
- {1, 1} : 1 thứ nhất là dòng số 1. 1 thứ 2 đó là cột thứ nhất. Tương tự cho {1, 2}, {1, 3},…
Đây là Code trương trình

Và trương trình chạy nên bạn được như sau

Tổng Kết:
Như vậy qua bài viết này chúng ta đã cùng nhau học cách sử dụng đọc, ghi dữ liệu Excel trong lập trình giao diện GUI. Và cũng học cách ghi dữ liệu ra bảng. Trên đây chỉ là một ví dụ nhỏ không đi qua vào thuật toán. Qua trọng là chún ta hiểu được bản chất của vấn đề rồi từ từ sẽ ta mới học đến các bài toán cao hơn. Hi vọng rằng bài viết này sẽ giúp ích cho bạn một phần nào đó. Chúc bạn thành công!
dạ cho em hỏi nếu giá trị trong file excel hông phải là số nguyên thì có dùng được lệnh xlsread hông ạ? nếu không thì thay thế bằng lệnh gì ạ? em cảm ơn!
Chào thầy, vậy để lấy dữ liệu từ table ghi vào excel thì làm thế nào ?