写出matlabmatrixexcel

我正在尝试导出一个matrix从Matlab导出与xlswrite。 但是,我的matrix是一个cellarray,如“001”,“00323”等string。 当它被导出到Excel时,Excel会自动将它们转换回数字,并将前两个零分为“1”和“323”。

有谁知道如何强制excel接受他们作为文本,因为他们正在从Matlab写入xlsx?

谢谢! L.

Excel可能喜欢这样做,因为它正是Excel所做的,如果你键入这些值。解决这个问题的一种方法是把单元格数组中的'"=001"' ,而不是像下面的代码'001' 。 请注意,Excel在结果文件中正确处理值:

 myCell= {1, '0001', '="0001"'}; xlswrite('test.xlsx', myCell) 

如果需要的话,可以使用引号将围绕单元格数组中所有string的小函数编写成:

 function aCell = fixForExcel(aCell) for ind = 1:numel(aCell) myVal = aCell{ind}; if isstr(myVal) aCell{ind} = sprintf('="%s"', myVal) end end end 

我遇到这个问题与SSNs。 我不知道用xlswrite创build电子表格有多less控制。

您可以将格式设置为文本,并保留前导零。

问题仍然存在,当您打开电子表格时,所有前导零将被消除。 您可以创build一个自定义格式,指定单元格的格式有两个前导零。 您可以使用“\ 0 \ 0#”作为自定义expression式。 文本格式将在第一次后保存。

如果你有一个0的可变数字,解决它的唯一方法是将数据复制到Excel中。