帮助从excel中提取数据

14日视图(30天)
Teshan Rezel
Teshan Rezel 2021年8月24日
评论道: Teshan Rezel 2021年8月24日
嗨,伙计们,
我想从excel文件中提取数据在一个特定的方式。
从本质上讲,我想遍历每个文件,得到的内容列(地区),从“区域”重命名表的名称,然后粘贴到一个新的数据表或创建一个struct /表/单元阵列的列数据的电子表格。我不知道如果这是可能的,但是我遇到一些问题和我的代码(这是远未完成)。我可以寻求一些帮助解决这个问题吗?
我= 1:numFolders
.folder pathVar =[子文件夹(我)“\”子文件夹(我). name];
excelPath = [pathVar“\ Results.xls”];
名称= sheetnames (excelPath);
名称= extractAfter(名称,' ');
nameCell (i) =名称;
tempdata = readtable (excelPath,“VariableNamingRule”,“保存”);
数据我{}= tempdata.Area;
% writetable(数据。区域,outPath);
结束

接受的答案

Devyani Maladkar
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”)
1评论
Teshan Rezel
Teshan Rezel 2021年8月24日
@Devyani Maladkar 谢谢你,这是真的!现在,我唯一的问题是,我的数据表有不同数量的每个条目元素,所以它总是出现一个mx₁数组。请问如何绕过这个限制吗?

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!