使用Xlswrite进行单元格数组

时间:2014-07-03 15:49:37

标签: excel matlab import cells

我知道xlswrite无法直接将单元格数组的内容填充到Excel工作表中。不知怎的,我在代码中缺少一个逻辑,我需要填充导出到工作表的每个元素。说我的单元格数组中有单元格和字符示例

Names = (1x1 cell) (1x1 cell) (1x1 cell) (1x1 cell)

或者说

Names= {{'Brian'};{'Andy'};{'Katherine'};{'crystal'};{'Thomas'};{'Michael'}; {'Maria'}.........};

直接尝试了xlswrite,但它没有用。理解它可以一次打印一个(如果我错了,请纠正我)。

saveto = 'D:\Data\';
xlswrite([saveto,'test'],Names{1},'A1');

仅适用于单元格中的一个元素。编写for循环对我没有帮助

 for aa=1:length(Names)
     saveto = 'D:\Data\';
     xlswrite([saveto,'test'],Names{aa},'A1:A2000'); % A2000 is used as a random number 
 end

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

尝试"展平"在写入xls之前你的Names

Names= {{'Brian'};{'Andy'};{'Katherine'};{'crystal'};{'Thomas'};{'Michael'};{'Maria'}}
NamesToWrite = reshape([Names{:}], size(Names));

然后在xlswrite上使用NamesToWrite

saveto = 'D:\Data\';
xlswrite([saveto,'test.xls'],NamesToWrite);

这是因为,如果将单元格数组传递给函数,则其元素必须是数字标量或字符串。