[C#] Hướng dẫn chuyển đổi số int sang dạng text giống column name trên Excel
Xin chào các bạn, bài viết hôm nay mình sẻ tiếp tục hướng dẫn các bạn cách chuyển đổi số int sang Text dạng column Name trên Excel File.
[C#] Convert int to Column name Excel
Trên Excel, các cột column được đánh thứ tự theo chữ cái A->Z tương đương như sau:
1 => A
2 => B
....
26 => Z
27 => AA
....
Đó là cách đánh số của Excel.
Dưới đây, là giao diện chuyển đổi số dạng column name Excel.
Source code C#:
namespace ConvertExcelColumnName
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
class ColumnExcel
{
public int Number { get; set; }
public string ExcelColName
{
get
{
return GetExcelColumnName(this.Number);
}
}
private string GetExcelColumnName(int columnNumber)
{
string columnName = "";
while (columnNumber > 0)
{
int modulo = (columnNumber - 1) % 26;
columnName = Convert.ToChar('A' + modulo) + columnName;
columnNumber = (columnNumber - modulo) / 26;
}
return columnName;
}
}
private void Form1_Load(object sender, EventArgs e)
{
var listData = new List<ColumnExcel>();
for (int i = 1; i < 2000; i++)
{
var colExcel = new ColumnExcel();
colExcel.Number = i;
listData.Add(colExcel);
}
dataGridView1.DataSource = listData;
}
}
}
Code Chuyển ngược lại:
public static int NumberFromExcelColumn(string column)
{
int retVal = 0;
string col = column.ToUpper();
for (int iChar = col.Length - 1; iChar >= 0; iChar--)
{
char colPiece = col[iChar];
int colNum = colPiece - 64;
retVal = retVal + colNum * (int)Math.Pow(26, col.Length - (iChar + 1));
}
return retVal;
}
Thanks for watching!