-1
我有這樣的遺留代碼:如何簡化這個花式列數列到Alpha的表示函數?
private Worksheet _xlSheet;
. . .
_xlSheet.PageSetup.PrintArea = "A1:" +
GetExcelTextColumnName(_grandTotalsColumn) + finalRow;
. . .
protected string GetExcelTextColumnName(int columnNum)
{
StringBuilder sb = new StringBuilder();
if (columnNum > 26)
{
int firstLetter = ((columnNum - 1)/26) + 64;
int secondLetter = ((columnNum - 1) % 26) + 65;
sb.Append((char)firstLetter);
sb.Append((char)secondLetter);
}
else
{
sb.Append((char)(64 + (columnNum - 1)));
}
return sb.ToString();
}
我簡化了代碼到這個程度:
_xlSheet.PageSetup.PrintArea = "A1:" + GetExcelTextColumnName(_xlSheet.UsedRange.Columns.Count) + _xlSheet.UsedRange.Rows.Count;
...但不知道是否有簡化「列數-TO-方式列-Alpha「花式褲子代碼。是否存在,或者是現有的GetExcelTextColumnName()實際上是否優雅,簡潔並且可維護的代碼?
這是一個遞歸算法的完美情況。 –