C#如何遍历excel列

我想获得一个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循环?

你的循环看起来如下:

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

我相信除了循环遍历索引并使用单元格或行之外没有好的方法:

 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的唯一原因是,如果你正在访问像条件格式等东西,而不是单元格的内容,而且你不能在一个语句中写出所有的范围。 不过也可能有使用数组的方法。