我想从Matlab导出矩阵到xlswrite导出。但是,我的矩阵是一个cellarray,有'001','00323'等字符串。当它被导出到Excel中时,Excel会自动将它们转换回数字,并将前两个零分为'1'和'323'。写入matlab矩阵excel
有谁知道如何强制excel接受他们作为文本,因为他们正在从Matlab写入xlsx?
谢谢! L.
我想从Matlab导出矩阵到xlswrite导出。但是,我的矩阵是一个cellarray,有'001','00323'等字符串。当它被导出到Excel中时,Excel会自动将它们转换回数字,并将前两个零分为'1'和'323'。写入matlab矩阵excel
有谁知道如何强制excel接受他们作为文本,因为他们正在从Matlab写入xlsx?
谢谢! L.
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
我碰上这个问题与SSNs。我不知道用xlswrite创建电子表格有多少控制。
您可以将格式设置为文本,并保留前导零。
问题仍然存在,当您打开电子表格时,所有前导零将被消除。您可以创建一个自定义格式来指定单元格的格式有两个前导零。您可以使用“\ 0 \ 0#”作为自定义表达式。文本格式将在第一次后保存。
如果您的可变数字为0,解决它的唯一方法是将数据复制到excel。