导出到Excel

时间:2016-05-20 11:47:59

标签: arrays matlab cell export-to-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代表第一个元素。

我曾在很多地方寻找过解决方法。但有没有一种避免这种情况发生的好方法?要么以某种方式添加额外的´或其他一些我没见过的神奇技巧?

提前谢谢!

1 个答案:

答案 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行相当于:

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

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