14

重複の可能性:
列番号(例:127)をExcel列(例:AA)に変換する方法

さて、私は2D配列をパラメーターとして受け入れるメソッドを書いています。この2D配列をExcelワークシートに配置したいのですが、最終的なセルの位置を計算する必要があります。私は次のように簡単に高さを取得できます:

var height = data.GetLength(1); //`data` is the name of my 2d array

これでY軸がわかりますが、軸を取得するのはそれほど簡単ではありませんX。明らかに、私はそのような数を得ることができます:

var width = data.GetLength(0);

これは私に数字を与え、それを文字に変換したい。したがって、たとえば、0はA、1はBというように、26に到達して再びAに戻ります。これを行う簡単な方法があると確信していますが、私には完全な精神的障害があります。

あなたならどうしますか?

ありがとう

4

2 に答える 2

55

これは、2文字の列(列Zの後)も処理するバージョンです。

static string GetColumnName(int index)
{
    const string letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    var value = "";

    if (index >= letters.Length)
        value += letters[index / letters.Length - 1];

    value += letters[index % letters.Length];

    return value;
}
于 2012-04-29T16:33:16.217 に答える
0

それをcharにキャストして、「ToString()」を実行するだけです。

using System;
using System.Collections.Generic;

public class MyClass
{
    public static void RunSnippet()
    {
        int myNumber = 65;
        string myLetter = ((char) myNumber).ToString();
        WL(myLetter);
    }

    #region Helper methods

    public static void Main()
    {
        try
        {
            RunSnippet();
        }
        catch (Exception e)
        {
            string error = string.Format("---\nThe following error occurred while executing the snippet:\n{0}\n---", e.ToString());
            Console.WriteLine(error);
        }
        finally
        {
            Console.Write("Press any key to continue...");
            Console.ReadKey();
        }
    }

    private static void WL(object text, params object[] args)
    {
        Console.WriteLine(text.ToString(), args);   
    }

    private static void RL()
    {
        Console.ReadLine(); 
    }

    private static void Break() 
    {
        System.Diagnostics.Debugger.Break();
    }

    #endregion
}
于 2012-04-29T16:12:26.687 に答える