在基于参数的excel交互中获取范围

我有一个方法,需要参数和基于一个参数,我必须在我的Excel表中获得一个不同的范围,例如,如果我的参数是'2',那么范围将是:

A1 - B1 (2 columns on the top row) 

如果参数是“4”,那么范围是:

 A1 - D1 (4 columns) 

我想过的方法是像这样创build一个string数组:

 public void excelExport(int columns) { string[] alphabet = { "A", "B", "C", "D" ... "Z"}; Range range = ws.get_Range("A1", alphabet[columns] + "1"); } 

然而,excel可以进入双重,三重等。字符列(我怀疑我需要进入三重字符列'AAA,AAB等'),但正如你所看到的,我不可能做一个有50个索引的数组,因为如果我需要51或52列在某一点上? 我的数组方法将无法正常工作。

有一个更基本的方法来获取范围dynamic基于参数中的数字?

添加这个帮手方法。 它假定如果columnNumber被设置为1,则表示列“A”。 值2代表“B”等:

 private string GetExcelColumnName(int columnNumber) { int dividend = columnNumber; string columnName = String.Empty; int modulo; while (dividend > 0) { modulo = (dividend - 1) % 26; columnName = Convert.ToChar(65 + modulo).ToString() + columnName; dividend = (int)((dividend - modulo) / 26); } return columnName; } 

像这样使用它:

 public void ExcelExport(int columnNumber) { Range range = ws.get_Range("A1", GetExcelColumnName(columnNumber) + "1"); // do stuff with range }