2

我有一个要生成的 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;
    }
}
4

2 回答 2

1

为了提高性能,您可以将范围放在 object[,] 中并最后将其写回。

object[,] orange = range.value;

object[1,1] = "test";

range = orange;
于 2013-11-06T13:59:10.530 回答
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);
于 2013-11-06T12:41:43.923 回答