【发布时间】:2013-08-11 10:37:04
【问题描述】:
我需要遍历特定的 Excel 行。现在我有一个迭代列的代码,我希望它与此类似。它看起来像这样:
int columnLength = xlWorkSheet.UsedRange.Rows.Count;
string lastCell = Regex.Replace(CONST_FIRST_CELL, @"\d+", columnLength.ToString()); //will give me the last cell in the column
var excelColumn = xlWorkSheet.Range[CONST_FIRST_CELL, lastCell ];
if (excelColumn == null)
{
throw new Exception("bad col");
}
for (int i = 1; i < columnLength ; i++)
{
Excel.Range currentValue = excelColumn [i];
....DO SOME STUFF....
}
如何迭代特定的行?我不确定如何获得最后一列,就像我在上面的实现中得到最后一行单元格一样,从那时起我只需要用长度切换一个数字,但现在我需要以某种方式获取正确的最后一行单元格(其中意味着以某种方式切换字母,即 C4 到 AD4) 以获得第一个单元格行和最后一个单元格的范围...
我猜最好的解决方案是以某种方式涉及一个 foreach 循环?
【问题讨论】:
-
请告诉我们您使用什么库从 Excel 中读取,例如 OpenXml / Office dll 等。
-
您的代码有点混乱。您正在定义称为“列”的变量并为它们分配行值。另外,我不确定您通过正则表达式获得最后一个单元格的方式。你能解释一下你想要完成什么吗?只是遍历行?另外,根据 saravanan 的建议,请告诉您正在使用的特定库;我认为这是互操作连接,但也许不是;什么可以解释你的代码中我不理解的一些部分。
-
@saravanan 我正在使用 .NET 的 Microsoft.Office.Interop.Excel
-
@varocarbas 我有一个特定的行,例如第 5 行,现在我想遍历该行中的每个单元格并获取当前单元格的内容。跨度>
-
更清楚的是,我已经写了一个答案,包括在循环中完成所需的更正以完成您所追求的 -> 给定行中从 startCol 到 maxCol 的所有单元格的范围(和值)列。