写出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中。