excel以编程方式获取范围

时间:2013-11-06 12:15:24

标签: c# excel report

我有一个要生成的Excel报告,下面是我使用过的代码。在这里,我正在硬编码范围,即从A到Z.有没有办法根据数据集中的列检索范围?基本上我只是想删除硬编码的值。

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;
    }
}

2 个答案:

答案 0 :(得分:1)

为了表现你可以把范围放在一个对象[,]中,然后把它写回来。

object[,] orange = range.value;

object[1,1] = "test";

range = orange;

答案 1 :(得分:0)

我不是100%肯定你想做什么,但你可以得到这样的范围:

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);