3

我想获取 excel 工作表的特定列,然后遍历它的单元格。我希望它看起来像这样:

Excel.Workbook workbook = app.Workbooks.Open(svDropPath);
Excel.Worksheet xlWorkSheet = (Excel.Worksheet)workbook.Sheets["Sheet Name"];
var col = xlWorkSheet.UsedRange.Columns["C:C", Type.Missing]; // I want the 3rd column
foreach(Cell c in col)
....

我如何实际制作这个 foreach 循环?

4

2 回答 2

7

您的循环将如下所示:

    foreach (Excel.Range item in col.Cells)
    {
        //whatever you want to do with your cells, here- msgbox of cells value
        MessageBox.Show(Convert.ToString(item.Value));
    }
于 2013-08-05T12:13:32.140 回答
5

我相信除了遍历有问题的索引并使用单元格或行之外,没有其他好的方法:

for (int i = 1; i <= max; i++)
{
  Range cell = col.Cells[i, 1];
  // or
  Range cell = col.Rows[i];
}

但是,请注意,如果您正在读取和/或写入所有单元格,最好将整个列读取/写入对象数组,然后循环遍历数组项,如我的回答https 中所述: //stackoverflow.com/a/18058144/1737957。这不仅速度更快,而且您还可以使用更好的语言结构进行循环,因为您现在正在处理一个简单的 C# 数组。

您必须循环而不是执行此 AFAIK 的唯一原因是,如果您正在访问条件格式等内容,而不仅仅是单元格内容,并且您无法在一个语句中编写它们的全部范围。然而,也有可能使用数组来做这些。

于 2013-08-05T12:35:55.580 回答