2011-12-07 1 views
0

私はデータソースとしてMS Excelを使用しています。私はワークブックの一つに一つのテーブルを持っています。テーブルからデータを取得するときに、MS Excel(例:A、B、C、... AA、AB ...など)の列名が必要です。C#を使用してExcelごとに列名を取得する

これを達成する方法はありますか?

私をご案内ください。

+0

列名は常にExcelで固定されます。可能な方法の1つは、列番号を取得し、それを実際のcoulmn名を返す関数に渡すことです。 – whihathac

答えて

2

非常に簡単、私は一度、このための方法を作った、あなたが必要とするすべての列番号であり、それは「AA」または「BB」

private static string chars ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 

private static string ConvertNumber(int number) 
{ 
    string result; 
    number -= 1; 
    int rest = number % 26; 
    int q = number/26; 
    if(q == 0) 
    { 
    result = chars[rest].ToString(); 
    }else{ 
    result = ConvertNumber(q) + chars[rest]; 
    } 
    return result; 
} 

これだけ作品として、文字列に変換しますあなたの最初の列はindex = 0ではなくindex = 1です。 これは、 'A'が通常の数値システムのように '0'と同じではないためです。 ここでABが0 * 26^1 + 1 * 26^0になる場合

+0

素晴らしい入力とそのようなタイムリーな返信に感謝します:) :) cherio –

+0

@PriyankThakkar:np、私はこのコードを私のプロジェクトからここに置いていました。コピー貼り付けといくつかのコメントとその完了:) – Frederiek

関連する問題