2016-05-20 39 views
1

我有一个单元格数组。这个单元格数组中的一些元素包含零作为第一个字符,整个元素也只有数字(双)。将这些导出到Excel(我更喜欢)时,将删除零并将其转换为数字。导出到Excel时保留单元格数组的值

让我们举个例子来说明我的问题。我有一个包含10个元素的单元阵列:

NodeID = {'0000006'; 
      '0000011'; 
      '000011R'; 
      '000016R'; 
      '000021R'; 
      'B276_2'; 
      'EB 7.55'; 
      'EB2521'; 
      'EllebaekOPlB1'; 
      'EllebaekOplB10'}; 

前两个元素分别包含零直到数字6和11。不同于涉及字母的第三个元素等等。因此,在输出NodeID到Excel时,在一列返回这个(我用的方式writetable命令):

6 
11 
000011R 
000016R 
000021R 
B276_2 
EB 7.55' 
EB2521 
EllebaekOPlB1 
EllebaekOplB10 

通告前两个元素去除零。现在我知道,在Excel中,它将保留在单元格前加上引号“'”的所有内容,例如。第一个元素为'0000006

我在许多地方搜索过,以找到解决方案。但是有没有避免这种情况发生的好方法?要么通过某种方式增加一个额外的´或其他一些我没有看到的魔术技巧?

预先感谢您!

+0

它是表格还是单元格阵列? –

回答

0

一种选择(如果你的价值观在一个小区中,像你说的,他们是):

filename = 'NodeID.xlsx'; 
NodeID2 = cellfun(@(C) ['''',C], NodeID,'UniformOutput', false) 
xlswrite(filename, NodeID2) 

这给了你:

NodeID2 =  
    ''0000006' 
    ''0000011' 
    ''000011R' 
    ''000016R' 
    ''000021R' 
    ''B276_2' 
    ''EB 7.55' 
    ''EB2521' 
    ''EllebaekOPlB1' 
    ''EllebaekOplB10' 

和Excel文件看起来像这样:

enter image description here

cellfun这一行等同于NT才能:

for ii = 1:numel(NodeID) 
    NodeID2{ii,1} = ['''', NodeID{ii}]; 
end 

的部分['''', NodeID{ii}]插入一个单引号在前面的字符串。 Relevant answer

+0

完美的作品。但我意识到,你不能用我的首选'可写'来做到这一点。然后它会把两个''''放在牢房里。所以'xlswrite'像你的建议一样魅力:)谢谢! –

相关问题