MATLAB|Excel中的列名与数字的对应

2018-03-28  本文已影响493人  冰冻生菜ch

最近处理数据将数据批量写入excel中,需要一个子函数,将excel中列名(字母)与数字对应,写了一个子函数,但是有点问题,找了网上的一些资料,发现这竟然曾经是一道程序员笔试题目。

网上的一些例子,链接如下:

因为我的数据最多也就是1000个,不超过excel的1000列,也就是最多用到三个字母。
别人写的都简短。我写的很拙略,看起来很笨,运行了一下有点问题,贴出来吧。

程序如下(有点问题):

function str_lie=Z1_col_alphabet_relate_num(datanum_col)
%% 找出excel列对应的字母
str_alphabet={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',...
    'P','Q','R','S','T','U','V','W','X','Y','Z'};
if datanum_col<=26   %一个字母
    str_lie=str_alphabet{1,datanum_col};
end
if datanum_col>26&&datanum_col<=26+26*26    % 2个字母
    lie_1=fix(datanum_col/26);   %整数
    lie_2=mod(datanum_col,26);   %余数
    str_lie=strcat(str_alphabet{1,lie_1},str_alphabet{1,lie_2});
end
if datanum_col>26+26*26&&datanum_col<=26*26+26*26*26    % 3个字母
    lie_1=fix(datanum_col/26/26);   %整数
    lie_2=fix((datanum_col-26*26)/26);
    lie_3=mod(datanum_col,26);   %余数
    str_lie=strcat(str_alphabet{1,lie_1},str_alphabet{1,lie_2},str_alphabet{1,lie_3});
end
上一篇下一篇

猜你喜欢

热点阅读