我在单独的excel文件中有多个数据集。我选择包含所有原始数据的excel文件,它读取数据中的峰并将其存储。这些excel文件有数百个。
我需要将峰值数据存储在单个excel文件中,但同时用文件号名称(例如1810992)标记顶部单元格,然后将数据垂直存储在下面的列中。这本身不应该太难。
但是我需要的是该程序转到包含它的文件夹中的下一个excel文件,并重复该过程,但将下一组数据放在下一列中。
我不知道如何打开多个excel文件,或者打开一个excel文件,然后收集经过过滤的数据并将其存储在下一列中,然后打开下一个excel文件并重复该过程,例如for循环。
这是代码的作者写的,有一个UI,当您单击打开的文件夹时,此代码将运行。
[h.inputFileName,h.directory, ~]=uigetfile('*.*');
tic
file = [h.directory,'\',h.inputFileName]; %combines directory and file
name
[~,sheets] = xlsfinfo(file);
tmp_dat=csvread(file) ;
h.time=tmp_dat(:,1) ;
h.rawData1=tmp_dat(:,7) ;
h.rawData2=tmp_dat(:,4) ;
同样是针对一个excel文件,我需要它来重复该过程,但无需我亲自点击。要遍历整个文件夹,直到已读取所有excel文件。
答案 0 :(得分:0)
您可以使用dir
命令列出当前目录中的文件。
您还可以像下面的代码一样添加过滤器。
dir('*.xls*' )
它将列出当前目录的所有Excel文件(xls和xlsx)。然后,您必须进行for
循环才能重复该过程。
在您发布的程序中,您使用的是csvread
,xlsread
可能更合适。