NEWS

[C#] Hướng dẫn chuyển đổi số int sang dạng text giống column name trên Excel

[C#] Hướng dẫn chuyển đổi số int sang dạng text giống column name trên Excel
Đăng bởi: Thảo Meo - Lượt xem: 3036 10:00:54, 31/03/2022DATABASE   In bài viết

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.

convert_col_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!

DOWNLOAD SOURCE

THÔNG TIN TÁC GIẢ

[C#] Hướng dẫn chuyển đổi số int sang dạng text giống column name trên Excel
Đăng bởi: Thảo Meo - Lượt xem: 3036 10:00:54, 31/03/2022DATABASE   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp