Converting a cell array to excel file using write table - how to add headers and sheet name?

I am able to convert the 'THRESH_DATA' variable inside the attached to an Excel file - this is how my code does it (thanks, @Voss):
filename = 'THRESH_DATA.xlsx';
n = size(THRESH_DATA,1);
for ii = 1:n
T = table(THRESH_DATA{ii,:});
writetable(T,filename,'Sheet',ii);
end
The next step (which I was hoping to handle myself) is to include column headers and sheet names. For sheet names, I thought of:
% sheetNames = ('2000', '2001', '2002','2003', '2004', '2005','2006', '2007', '2008','2009', '2010', '2011',...
% '2012', '2013', '2014','2015', '2016', '2017','2018', '2019', '2020','2021', '2022');
writetable(T,filename,'Sheet',ii,'sheetNames')
but that doesn't work. Drawing from other posts (most using xlswrite), I thought I could used variableNames, somehow. Thanks!

 采纳的回答

filename = 'THRESH_DATA.xlsx';
sheetNames = string(2000:2022);
% replace this with the variable names you want:
varNames = ["Time","X","Y","Z","AA","BBB","LMNOP","EIGHT","NOINE"];
n = size(THRESH_DATA,1);
for ii = 1:n
T = table(THRESH_DATA{ii,:},'VariableNames',varNames);
writetable(T,filename,'Sheet',sheetNames(ii));
end

2 个评论

This solution looks after both the sheet names and the headers. Thanks.
You're making this look so easy, @Voss.

请先登录,再进行评论。

更多回答(1 个)

sheetNames = {'2000', '2001', '2002','2003', '2004', '2005','2006', '2007', '2008','2009', '2010', '2011',...
'2012', '2013', '2014','2015', '2016', '2017','2018', '2019', '2020','2021', '2022'};
writetable(T,filename,'Sheet',sheetNames{ii})

2 个评论

Declare the sheetNames as cell array and access the elements of cell array using the index of for loop
The '(' ')' are usually used as function definition calls, you could also use concatenation operator [ ] instead of curly braces { }

请先登录,再进行评论。

产品

版本

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by