Git: создал новую ветку из неправильной ветви

Возможно, вам потребуется преобразование в обоих направлениях, например, из адреса столбца Excel, такого как AAZ, в целое число и от любого целого к Excel. Эти два метода будут делать именно это. Предполагается, что на основе индекса 1 первый элемент в ваших «массивах» - это номер элемента 1. Здесь нет ограничений по размеру, поэтому вы можете использовать адреса, такие как ERROR, и это будет номер столбца 2613824 ...

public static string ColumnAdress(int col)
{
  if (col <= 26) { 
    return Convert.ToChar(col + 64).ToString();
  }
  int div = col / 26;
  int mod = col % 26;
  if (mod == 0) {mod = 26;div--;}
  return ColumnAdress(div) + ColumnAdress(mod);
}

public static int ColumnNumber(string colAdress)
{
  int[] digits = new int[colAdress.Length];
  for (int i = 0; i < colAdress.Length; ++i)
  {
    digits[i] = Convert.ToInt32(colAdress[i]) - 64;
  }
  int mul=1;int res=0;
  for (int pos = digits.Length - 1; pos >= 0; --pos)
  {
    res += digits[pos] * mul;
    mul *= 26;
  }
  return res;
}
30
задан hakunin 8 December 2011 в 09:10
поделиться