Avoid overwriting value of variable

2 visualizaciones (últimos 30 días)
Ghenji
Ghenji el 14 de Feb. de 2018
Editada: Stephen23 el 14 de Feb. de 2018
I am having following code:
Source_files = [specified directory]
len = length(Source_files);
for j = 1 : len
[status,sheets] = xlsfinfo(Source_files)
sheetIndex = find(strncmp(sheets, '#', 1));
end
sheetIndex variable's value gets overwritten on every iteration. I want to have a variable wanted_sheets constituting names of all the sheets starting with '#' from all the files.

Respuesta aceptada

Stephen23
Stephen23 el 14 de Feb. de 2018
Editada: Stephen23 el 14 de Feb. de 2018
Use indexing:
Source_files = [specified directory]
N = numel(Source_files);
C = cell(1,N);
for k = 1:N
[status,sheets] = xlsfinfo(Source_files{k});
C{k} = find(strncmp(sheets, '#', 1));
end
  2 comentarios
Ghenji
Ghenji el 14 de Feb. de 2018
Editada: Ghenji el 14 de Feb. de 2018
Thank you for your reply, Now this gives me only sheet number for this files. How do i get sheetnames?
Secondly, this numbers(sheet no.) are repeating how can i avoid this?
lets say I have these files with their sheetnames:
File1 : #sheet1, sheet2, #sheet3, sheet4, sheet5
File2 : sheet1, sheet2, #sheet3, #sheet4, sheet5
File3 : #sheet1, sheet2, #sheet3, sheet4, sheet5
This is how i want,
wanted_sheet = #sheet1, #sheet3, #sheet4
Stephen23
Stephen23 el 14 de Feb. de 2018
Editada: Stephen23 el 14 de Feb. de 2018
First collect the sheet names, then do any processing after the loop:
N = numel(Source_files);
C = cell(1,N);
for k = 1:N
[~,C{k}] = xlsfinfo(Source_files{k});
end
C = [C{:}];
C = C(strncmp(C,'#',1));
C = unique(C)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre File Operations en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by