matlab写一个UI选取文件夹下的xls文件读入的代码
时间: 2024-02-28 10:56:08 浏览: 79
matlab 读取某一文件夹下的文件
好的,以下是一个基于MATLAB GUI的文件夹选择和xls文件读取的代码:
```matlab
% 创建一个GUI窗口
fig = uifigure('Name', '读取Excel文件');
% 创建一个按钮用于选择文件夹
btn = uibutton(fig,'push','Text','选择文件夹',...
'Position',[100 200 200 50],...
'ButtonPushedFcn',@(btn,event) selectFolder());
% 创建一个文本框用于显示文件夹路径
txt = uitextarea(fig,'Position',[100 150 400 50],'Editable','off');
% 创建一个按钮用于读取文件夹下所有xls文件
btn2 = uibutton(fig,'push','Text','读取所有xls文件',...
'Position',[100 100 200 50],...
'ButtonPushedFcn',@(btn,event) readXlsFiles());
% 创建一个文本框用于显示读取的数据
txt2 = uitextarea(fig,'Position',[100 50 400 50],'Editable','off');
% 选择文件夹的回调函数
function selectFolder()
folder_path = uigetdir('Select a folder');
if folder_path ~= 0
txt.Value = folder_path;
end
end
% 读取xls文件的回调函数
function readXlsFiles()
folder_path = txt.Value;
if isempty(folder_path)
errordlg('请先选择文件夹');
return;
end
% find all .xls files in the folder
files = dir(fullfile(folder_path, '*.xls'));
% iterate through each xls file and read the data
all_data = {};
for i = 1:length(files)
file_path = fullfile(folder_path, files(i).name);
[~, ~, raw_data] = xlsread(file_path);
all_data = [all_data; raw_data];
end
% combine all the raw data into one cell array
data = vertcat(all_data{:});
% display the data in the second text area
txt2.Value = sprintf('%d 个文件的数据:\n', length(files)) + string(data);
end
```
这个代码会创建一个GUI窗口,其中包含一个按钮用于选择文件夹、一个文本框用于显示文件夹路径、一个按钮用于读取文件夹下所有xls文件,以及一个文本框用于显示读取的数据。当用户点击选择文件夹按钮时,会弹出一个文件夹选择对话框,并将选择的文件夹路径显示在文本框中。当用户点击读取所有xls文件按钮时,程序会读取文件夹下所有xls文件的数据,并将数据显示在第二个文本框中。如果用户没有选择文件夹,程序会弹出一个错误提示框。
阅读全文