您的位置:首页 > 其它

Excel表格中列号与数字互换

2013-12-25 15:38 267 查看
1,switch 代码转换为函数

string sColName = "";

//for(){}

switch (ds.Tables[0].Rows.Count)

{

case 1:

sColName = "A";

break;

case 2:

sColName = "B";

break;

case 3:

sColName = "C";

break;

case 4:

sColName = "D";

break;

case 5:

sColName = "E";

break;

case 6:

sColName = "F";

break;

case 7:

sColName = "G";

break;

case 8:

sColName = "H";

break;

case 9:

sColName = "I";

break;

case 10:

sColName = "J";

break;

case 11:

sColName = "K";

break;

case 12:

sColName = "L";

break;

case 13:

sColName = "M";

break;

case 14:

sColName = "N";

break;

case 15:

sColName = "O";

break;

case 16:

sColName = "P";

break;

case 17:

sColName = "Q";

break;

case 18:

sColName = "R";

break;

case 19:

sColName = "S";

break;

case 20:

sColName = "T";

break;

case 21:

sColName = "U";

break;

case 22:

sColName = "V";

break;

case 23:

sColName = "W";

break;

case 24:

sColName = "X";

break;

case 25:

sColName = "Y";

break;

case 26:

sColName = "Z";

break;

}

转换代码:

string sColName = ToName(ds.Tables[0].Rows.Count-1);//调用下面方法ToName

public string ToName(int index)

{

if (index <= 0)

throw new Exception("invaild parameter");//invaild parameter不合法的参数

index--;

List<string> chars = new List<string>();

do

{

if (chars.Count > 0)

index--;

chars.Insert(0, ((char)(index % 26 + (int)'A')).ToString());

index = (int)((index - index % 26) / 26);

} while (index > 0);

return String.Join(string.Empty, chars.ToArray());//返回A、B、C···AA、AB···等

}

2,Excel表格中列号与数字互换

//用于excel表格中列号字转成数字,返回的列号索引从1开始

public int ToIndex(string columnName)

{

if (!Regex.IsMatch(columnName.ToUpper(), @"[A-Z]+"))

throw new Exception("Invalid parameter");

int index = 0;

char[] chars = columnName.ToUpper().ToCharArray();

for (int i = 0; i < chars.Length; i++)

{

index += ((int)chars[i] - (int)'A' + 1) * (int)Math.Pow(26, chars.Length - i - 1);

}

return index;

}

//用于将数字转成excel表格中列号字母,返回的列号索引从A开始,从A对应1开始

public string ToName(int index)

{

if (index <= 0)

throw new Exception("invaild parameter");

index--;

List<string> chars = new List<string>();

do

{

if (chars.Count > 0)

index--;

chars.Insert(0, ((char)(index % 26 + (int)'A' )).ToString());

index = (int)((index - index % 26) / 26);

} while (index > 0);

return String.Join(string.Empty, chars.ToArray());

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐