excel obteniendo el range programáticamente

Tengo un informe de Excel para generar y abajo está el código que he usado. aquí estoy hardcoding el range, es decir, de la A a la Z. ¿Hay alguna manera de recuperar el Rango en function de las columnas en el set de datos? Básicamente solo quiero eliminar los valores codificados.

Cualquier ayuda sería muy apreciada.

strCol = String.Empty; iRow = 0; foreach (DataRow r in ds.Tables[0].Rows) { iRow++; // add each row's cell data... iCol = 0; foreach (DataColumn c in ds.Tables[0].Columns) { iCol++; thisWorksheet.Cells[iRow + 1, iCol] = r[c.ColumnName]; **strCol = "A" + (iRow + 1) + ":Z" + iCol;** thisWorksheet.Range[strCol].Borders.Weight = 2; } } 

para el performance, puede poner el range en un object [,] y escribirlo al final.

 object[,] orange = range.value; object[1,1] = "test"; range = orange; 

No estoy 100% seguro de lo que quieres hacer, pero puedes get un Rango como este:

 Excel.Application excelApp = null; Excel.Workbook wkbk; Excel.Worksheet sheet; excelApp = new Excel.Application(); wkbk = excelApp.Workbooks.Add(); sheet = wkbk.Sheets.Add() as Excel.Worksheet; Excel.Range c1 = sheet.Cells[Row, Column]; //For instance Cells[1,1] for i think A1 Excel.Range c2 = sheet.Cells[Row, Column]; Excel.Range range = (Excel.Range)sheet.get_Range(c1,c2);