Combine excel files into one

104 vues (au cours des 30 derniers jours)
Ancalagon8
Ancalagon8 le 19 Oct 2022
Commenté : Mathieu NOE le 17 Avr 2024 à 16:05
I want to run the code below, inside every folder i have an excel file (data.xls) and i want to compare 10 excel files into 1. Can anyone help me?
path = 'D:';
S = dir(fullfile(path, '*', 'data.xls'))
for k = 1:numel(S)
F = fullfile(S(k).folder,S(k).name);
data = readtable(F);
d = datetime(strcat(table2array((data(:,1))), {' '}, table2array((data(:,2 )))));
acceleration = table2array((data(:,3 )));
xlswrite('file.xls', data)
end
  1 commentaire
Mathieu NOE
Mathieu NOE le 19 Oct 2022
hello
you have to explain what data you want to extract , combine and save.
for the time being your doing things in the for loop that are not even in the saved output excel file (you r'e saving what you simply loaded from the input file)
so you have to explain your logic and probably share some input files as well if we want to test the code
all the best

Connectez-vous pour commenter.

Réponse acceptée

Mathieu NOE
Mathieu NOE le 19 Oct 2022
Modifié(e) : Mathieu NOE le 9 Nov 2022
so I relicated the same folder tree and file name (same in every folder)
this is a slightly modified code , try it :
path = 'D:\2019';
S = dir(fullfile(path, '*', 'data.xls'))
for k = 1:numel(S)
F = fullfile(S(k).folder,S(k).name);
data = readtable(F);
d = strcat(table2array((data(:,1))), {' '}, table2array((data(:,2 ))));
out = [d data(:,3)]; % date / time / acceleration
out = renamevars(out,'Var1','Date & Time');
writetable(out,'file.xls',"Sheet",k)
end
  67 commentaires
Ancalagon8
Ancalagon8 le 17 Avr 2024 à 15:53
@Mathieu NOE thank you!!
Mathieu NOE
Mathieu NOE le 17 Avr 2024 à 16:05
as always, my pleasure !!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Data Import from MATLAB dans Help Center et File Exchange

Produits


Version

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by