MATLAB: Copying uitable contents and column headings to clipboard for non-fixed column headings

clipboardguideuitable

Hello.
I am using the following code below to copy the contents of a uitable.
s=get(handles.uitableResults,'data')
size_s = size(s);
str = sprintf('%s\t%s\t\%s\t\%s\t','Plane','FWHM', 'Enc.Energy','<loc Int>','Brenner');
str = sprintf ( '%s\n', str );
%str = '';
for i=1:size_s(1)
for j=1:size_s(2)
str = sprintf ( '%s%f\t', str, s(i,j) );
end
str = sprintf ( '%s\n', str );
end
clipboard ( 'copy', str );
I have hardcoded the titles (column headings), however I now use this code to copy many different populations of the uitable, each with a different number of columns and column headings. Can the above code be generalised to just pick up the current column names?
Thanks
Jason

Best Answer

Jason - I think that you can use the ColumnName property of the uitable to get the column names. For example,
hTable = uitable('Data',[1 2 3; 4 5 6; 7 8 9], 'ColumnName', {'A', 'B', 'C'});
columnNames = get(hTable, 'ColumnName');
where columnNames is a cell array of the column names for your table.