2014-06-11 110 views
0

我想从Matlab导出矩阵到xlswrite导出。但是,我的矩阵是一个cellarray,有'001','00323'等字符串。当它被导出到Excel中时,Excel会自动将它们转换回数字,并将前两个零分为'1'和'323'。写入matlab矩阵excel

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

谢谢! L.

回答

4

Excel中可能喜欢这样做,因为它到底是什么,如果你在输入这些值Excel中会做。 一种方法来解决这个问题是把'"=001"'单元阵列,而不是'001'如下面的代码中。请注意Excel正确对待值生成的文件中:

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

你可以写包围所有字符串用引号单元阵列一点点功能,如果需要的话:

function aCell = fixForExcel(aCell) 

    for ind = 1:numel(aCell) 
     myVal = aCell{ind}; 

     if isstr(myVal) 
      aCell{ind} = sprintf('="%s"', myVal) 
     end 
    end 

end 
0

我碰上这个问题与SSNs。我不知道用xlswrite创建电子表格有多少控制。

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

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

如果您的可变数字为0,解决它的唯一方法是将数据复制到excel。