xlswrite不覆盖
我需要使用.xlswrite将GUI数据导出到Excel。 目前我可以将它写入Excel中,但是因为我必须重复整个过程总共20次,这意味着我必须在Excel中存储至less20行。 我已经尝试在网上search,但有网站说,使用“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');
另外,是否可以在这个和下一组数据之间划一条线?
我build议你不要硬编码你想写数据的单元,而是使用一个dynamic变化的范围,例如在一个循环中。
最直观的方法是使用Excel的行列符号(即R1C1
,而不是A1
;另请参阅: link1 , link2 )。 但是,从MATLAB 2015b Excel不接受这种表示法,它必须转换为A1
样式,使用如下代码:
function a1name = GenerateExcelA1(rows,cols) a1name = [char(base2dec(dec2base(cols,26)',26)+64)' num2str(rows)]; end
(您可以将上面的文件放在单独的文件中,例如GenerateExcelA1.m
,或者如果是多function脚本,则放在同一个文件中)
你的代码会看起来像这样:
%// 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
另外考虑xlswrite1
这应该是更快。