将UITable数据提取到Excel工作表

时间:2014-08-26 16:06:07

标签: matlab matlab-figure matlab-uitable

我正在尝试从我创建的uitable中提取数据,并将其导出到带有列标题的Excel工作表中。通过它不断抛出错误,说明:

堆栈跟踪:

Error using vertcat
Dimensions of matrices being concatenated are not consistent.

Error in FatherSonGUI>generateWAR (line 124)
    num = [col';data]

Error in gui_mainfcn (line 95)
        feval(varargin{:});

Error in FatherSonGUI (line 42)
    gui_mainfcn(gui_State, varargin{:});

Error in @(hObject,eventdata)FatherSonGUI('generateWAR',hObject,eventdata,guidata(hObject))


Error while evaluating uicontrol Callback

示例图片 enter image description here

以下是我编写的代码示例:

dat = dyn_conformer.Data;
set(f,'name','Title','numbertitle','off') %renames the Title Figure
cnames = {'Task Mnemonic','Success Status','External Update Required', 'Correlation ID', 'Event Name','External System','Tech Exception Status','Returned Status','Return Cancel','Return Customer','Return Technical'};
rnames = {'1','2','3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20','21', '22', '23', '24', '25'};
t = uitable('Parent',f,'Data',dat,'ColumnName',cnames,... 
            'RowName',rnames,'Position',[10 100 1150 370]); % size of the values inside the figure object

    col = get(t,'ColumnName')
    data = get(t,'Data')
    num = [col';data]
    xlswrite('show.xls',num)

数据是从数据库中编译的,字段中包含简单数据。如果我要从col'变量中删除num元素,它只导出数据。但是,我想将列名和数据一起导出,最后它看起来像是一个合适的电子表格。

我希望得到一些帮助。

1 个答案:

答案 0 :(得分:1)

就像错误告诉你的那样,'col'和'data'数组的维度不一致。根据示例图像,数据中的列数大于标题数组的长度。您需要定义所有标题或将数据数组修剪为已定义列的数量。

后者:

num = [col';data(:,1:length(col))];

虽然这会以非特定方式修剪它们。