How to save tables to different sheets in one xlsx file?
34 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Niya Bedzheva
el 3 de Sept. de 2019
Comentada: FM
el 13 de Jul. de 2022
Hello everyone,
i have a for loop reading several files and doing some calculations for each of them. What i want to do is to save the results from every file in a seperate sheet on one excel file.
%% reading the files
files = dir('*.txt');
N=length(files);
for i=1:N
filename=files(i).name;
fid=fopen(filename);
data = textscan (fid, '%s %s %s %s %s %s %s %*s %*s %s %*s', 'headerLines', 2);
%%saving
R1=table (Time, beta, Sh, K, 'VariableNames' , {'Time', 'beta', 'Sh', 'K'});
F_xlsx=sprintf('results.xlsx');
writetable(R1,F_xlsx,'Sheet',[files(i).name]);
this is how i tried, but the it is filling the sheet only with the first file.
1 comentario
Andy
el 3 de Sept. de 2019
from the Matlab documentation "wrtitetable(T) writes table T to a comma delimited text file." As far as I am aware, this format doesn't support multiple sheets. I have used xlswrite when writing to Excel as you can define the sheet to be written to.
Respuesta aceptada
Nicolas B.
el 3 de Sept. de 2019
Have you done a step-by-step execution of your code to be sure that there are multiple files read?
Looking at it like that, I would just remore the square brakets to the sheet name:
writetable(R1,F_xlsx,'Sheet',files(i).name);
Personnally, I'm using writematrix() the same way on different tables without any problem.
4 comentarios
FM
el 13 de Jul. de 2022
I should have known better than to try exporting the CSV and writing VBA to import multiple files into different sheets within a common workbook. What a nightmare. This is a much more elegant solution, by orders of magnitude.
Más respuestas (0)
Ver también
Categorías
Más información sobre Spreadsheets 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!