Obtén el nombre de la columna .xlsx a partir de su índice en C#.
Me gustaría crear una función que convierta un número en una columna de un archivo .csv.
Por ejemplo:
– Número 5 -> Columna E
– Número 29 -> Columna AB
y así sucesivamente.
Hasta ahora he creado esta función:
public class Test
{
public static string GetColumn(int index)
{
StringBuilder col = new StringBuilder();
const int alpha_count = 26;
char alpha = (char)64;
if (index <= alpha_count)
{
col.Append(((char)(alpha + index)).ToString());
}
else
{
// Estoy atascado aquí....
}
return col.ToString();
}
static void Main(string[] args)
{
var col = Test.GetColumn(1);
}
}
Estoy atascado en la condición si el número supera los 26 (la longitud del alfabeto).
davy.ai
Para convertir un número en una columna de un archivo .csv, puedes utilizar la siguiente función:
La función convierte el número de entrada en una cadena que representa la columna en el archivo .csv. Si el número de entrada es menor o igual a 26, la función agrega la letra correspondiente a un objeto StringBuilder. Si el número de entrada es mayor a 26, la función entra en un bucle que divide el número de entrada por 26 y toma el residuo en cada paso. Los residuos se convierten en letras y se insertan al inicio del objeto StringBuilder. El bucle continúa hasta que el cociente sea menor o igual a 26, momento en el cual se inserta la letra final al inicio del objeto StringBuilder.
Por ejemplo,
GetColumn(5)
retorna"E"
,GetColumn(29)
retorna"AB"
, yGetColumn(703)
retorna"AAA"
.