xlswrite没有覆盖

时间:2015-10-12 06:51:38

标签: excel matlab user-interface

我需要帮助您使用.xlswrite将GUI数据导出到Excel。目前我能够将其写入Excel,但因为我必须重复整个过程总共20次,这意味着我必须在Excel中存储至少20行。我尝试过在网上搜索,但有网站上说使用" xlsappend"我不明白如何使用,似乎得到一个错误。

有没有办法去做呢?

我目前的代码:

xlswrite('File.xls', {'SubjectID:'},'Sheet1','A1');
xlswrite('File.xls', {name},'Sheet1','A2');
xlswrite('File.xls', {'Radiobutton: '},'Sheet1','B1');
xlswrite('File.xls', {Radiobutton},'Sheet1','B2');  

此外,是否可以在此数据与下一组数据之间划一条线?

1 个答案:

答案 0 :(得分:0)

我建议您不要对要写入数据的单元格进行硬编码,而是使用动态变化的范围,例如在循环中。

最直观的方法是使用Excel的行列表示法(即R1C1,而不是A1;另请参阅:link1,{{3 }})。但是,从MATLAB 2015开始,Excel不接受这种符号,必须使用link2等代码将其转换为A1 - 样式:

function a1name = GenerateExcelA1(rows,cols)
    a1name = [char(base2dec(dec2base(cols,26)',26)+64)' num2str(rows)];
end

(您可以将上述文件放在单独的文件中,例如GenerateExcelA1.m,或者如果它是多功能脚本,则放在同一个文件中)

您的代码将如下所示:

%// Definitions:
SUBJECT_TAG_COL = 1;
SUBJECT_VAL_COL = 2;
RADIO_TAG_COL = 3;
RADIO_VAL_COL = 4;

for ind1=1:numLines %// if you also want empty lines, replace with ind1=1:2:2*numLines
%// Make sure data is available, then:
    xlswrite('File.xls', {'SubjectID:'},'Sheet1',GenerateExcelA1(ind1,SUBJECT_TAG_COL));
    xlswrite('File.xls', {name},'Sheet1',GenerateExcelA1(ind1,SUBJECT_VAL_COL));
    xlswrite('File.xls', {'Radiobutton: '},'Sheet1',GenerateExcelA1(ind1,RADIO_TAG_COL));
    xlswrite('File.xls', {Radiobutton},'Sheet1',GenerateExcelA1(ind1,RADIO_VAL_COL)); 
end

还要考虑应该更快的this