/// <summary>
/// 将数字索引转换为Excel格式的索引 转换范围1~26*26列
/// </summary>
/// <param name="index">索引</param>
/// <returns>Excel格式的索引</returns>
private string ConvertToExcelIndex(int index)
{
if (index <= 0) return string.Empty;
string valueToRetrun = string.Empty;
if (index < 27) return valueToRetrun + GetChar(index);
int modRst = index % 26; //26个英文字母
if (modRst == 0) //是26的倍数,十位特殊处理,个位固定
return valueToRetrun + GetChar(index / 26 - 1) + 'Z';
return valueToRetrun + GetChar(index / 26) + GetChar(index % 26);
}
/// <summary>
/// 根据1~27之间的数字,返回对应的字母
/// </summary>
/// <param name="num">数字</param>
/// <returns>数字对应的字母</returns>
private char GetChar(int num)
{
if (num > 26 || num < 0) throw new Exception("应大于等于0并且不大于26");
if (num == 0) return 'Z';
return (char) (num + 64);
}