帮助从excel中提取数据
14日视图(30天)
显示旧的评论
嗨,伙计们,
我想从excel文件中提取数据在一个特定的方式。
从本质上讲,我想遍历每个文件,得到的内容列(地区),从“区域”重命名表的名称,然后粘贴到一个新的数据表或创建一个struct /表/单元阵列的列数据的电子表格。我不知道如果这是可能的,但是我遇到一些问题和我的代码(这是远未完成)。我可以寻求一些帮助解决这个问题吗?
为我= 1:numFolders
.folder pathVar =[子文件夹(我)“\”子文件夹(我). name];
excelPath = [pathVar“\ Results.xls”];
名称= sheetnames (excelPath);
名称= extractAfter(名称,' ');
nameCell (i) =名称;
tempdata = readtable (excelPath,“VariableNamingRule”,“保存”);
数据我{}= tempdata.Area;
% writetable(数据。区域,outPath);
结束
0评论
接受的答案
Devyani Maladkar
2021年8月24日
我的理解是你想提取从excel表列数据子目录,重命名表每一列的名称和写所有的列中提取一个文件。
与某列插入一个新表列名可以使用t
他
点语法与括号和报价表的名称可以不是一个有效的MATALB
标识符,请参考
这个文档
更多细节表
。
下面的代码显示了如何
阅读从子目录和文件
提取列和重命名它们
filename_sheetname
(为了避免
文件从
如果表的名字是一样的)
最后一个
表
是
令状
十
作为
一个输出
excel文件
。
所使用的样本数据是一个文件夹有两个excel文件
使用的命令,你可以复制相同的
下面
。
mkdir以及接下来
负载病人
T =表(性别、吸烟、体重);
T2 =表(性别、吸烟、高度);
writetable (T)“以及接下来/ allPatientsBMI_Weight.xls”);
writetable (T2,“以及接下来/ allPatientsBMI_Height.xls”);
dircontent = dir ();%当前目录清单
子目录= dircontent ([dircontent.isdir])%从当前目录列表中过滤所有dir
data =表();%最终表
%遍历所有子目录
为i = 1:元素个数(子目录)
如果比较字符串(子目录(我). name,“。”)| | strcmp(子目录(我). name,“. .”)
继续
结束
%获得子目录的所有文件
subdirPath = fullfile(子目录(我).folder子目录(i) . name);
subdirContent = dir (subdirPath);
subdirsFiles = subdirContent (~ (subdirContent.isdir))
%迭代子目录的文件
为j = 1:元素个数(subdirsFiles)
filePath = fullfile (subdirsFiles (j) .folder subdirsFiles (j) . name)
tempData = readtable (filePath,“VariableNamingRule”,“保存”);
sheetName = sheetnames (filePath);
colName = extractBefore (subdirsFiles (j) . name,“。”)+“_”+ sheetName
数据。(colName) = tempData.Gender;
结束
结束
writetable(数据、“output.xls”)