最近处理数据将数据批量写入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