How to save tables to different sheets in one xlsx file?

34 Ansichten (letzte 30 Tage)
Niya Bedzheva
Niya Bedzheva am 3 Sep. 2019
Kommentiert: FM am 13 Jul. 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 Kommentar
Andy
Andy am 3 Sep. 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Nicolas B.
Nicolas B. am 3 Sep. 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 Kommentare
Niya Bedzheva
Niya Bedzheva am 3 Sep. 2019
everything is perfect now. Thank you very much for the help! :)
FM
FM am 13 Jul. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by