如何在excel列中创建字母
本文关键字:创建 excel | 更新日期: 2023-09-27 18:19:10
我尝试创建一个像a,b,c,...z,aa,ab,ac,ad,ae,af,...,az,ba,bb,bc,...,bz,..zz,aaa,aab,aac..
到给定number(N)
但是当我尝试使用for loops
创建它时,我在元素中每秒钟创建一个for loop
字符这意味着打印一个…z - loop1,一个a
每第二个字母像a
,我写一个新的for循环
是否可以用for循环创建这个类型系列…
方法如下:
public static string GetExcelColumnName(int index)
{
int d = index;
string name = "";
int mod;
while (d > 0)
{
mod = (d - 1) % 26;
name = Convert.ToChar('a' + mod).ToString() + name;
d = (int)((d - mod) / 26);
}
return name;
}
public static IEnumerable<string> GetExcelColumns(int n) {
for (int i = 1; i <= n; i++)
{
yield return GetExcelColumnName(i);
}
}
static void Main(string[] args)
{
int i = 1;
foreach (var item in GetExcelColumns(900))
{
Console.Write(i++ + ": " + item + " ");
}
Console.WriteLine();
}
GetExcelColumnName
:
//Suppose index = 1, `GetExcelColumnName` should return `"a"`.
d = 1
d > 0
mod = (d - 1) % 26; //mod now is 0
Convert.ToChar('a' + mod); // => That's 'a'
//name now is "a"
d = (d - mod) / 26 = (1 - 0) / 26 = 0 // d is now 0
//End of While
method returns "a"
//Suppose index = 28, `GetExcelColumnName` should return `"ab"`.
d = 28
d > 0
mod = (d - 1) % 26; //mod now is 1 (27 modulo 26)
Convert.ToChar('a' + mod); // => That's 'b'
//name now is "b"
d = (d - mod) / 26 = (28 - 1) / 26 = 1 // d is now 1
d > 0
mod = (d - 1) % 26; //mod now is 0 (0 modulo 26)
Convert.ToChar('a' + mod); // => That's 'a'
//name now is "ab"
d = (d - mod) / 26 = (1 - 0) / 26 = 0 // d is now 0
//End of While
method returns "ab"
使用列表和推导式非常简单
例如python
alpha = ['a','b','c','d','e','f','g','h','i']
def merge(x,y):
new = [ a+b for a in x for b in y]
return new
print(merge(alpha,alpha))
print(merge(alpha,merge(alpha,alpha)))
会给你你想要的。在c#中你可以找到一个等价的
我认为正确的方法是将其视为以27为基数的数字,并跳过所有带有0的数字。您的数字是_abcdefghijklmnopqrstuvwxyz
(_的值为0,z的值为26),您创建27个基数,如下所示:
nums_generated = 0
next_num = 1
while nums_generated < N:
number_string = generate_base_27(next_num)
if not '_' in number_string:
print number_string
num_generated = num_generated + 1
next_num = next_num + 1
应该可以了。要使用给定的字符集创建以27为基数的数字,请查看下面的示例,并在需要以27为基数时进行适当的更正。