日期:2014-05-17  浏览次数:21138 次

C#通过Excel遍历XLS文件每一行
已经有

oXL = new Excel.Application();
oWB = oXL.Workbooks.Open(filePath);
Excel.Worksheet oWS = oWB.ActiveSheet as Excel.Worksheet;


请问如何操作oWS变量,将他的一行存入一个string数组中;
我是这样做的

int colCount = oWS.UsedRange.Columns.Count;
int rowCount = oWS.UsedRange.Rows.Count;
for (int iRow = 0; iRow < rowCount; ++iRow)
{
    string[] sa = oWS.get_Range(oWS.Cells[iRow + 1, 1], oWS.Cells[iRow + 1, colCount]).Value2;
    //对sa的操作
    //...
}

但是程序运行到string[] sa = oWS.get_Range(oWS.Cells[iRow + 1, 1], oWS.Cells[iRow + 1, colCount]).Value2;时会抛出一个异常,+ $exception {"“object”未包含“get_Range”的定义"} System.Exception {Microsoft.CSharp.RuntimeBinder.RuntimeBinderException}

请问这是为什么,怎么解决?
当然如果有更好的方法能一行一行遍历EXCEL文件是更好了,前提是用这个oXL = new Excel.Application();
各位大神帮帮忙吧,这几天都在琢磨这个玩意,不出成果不甘心啊,别再跟我说用什么第三方软件或者其他什么了。

------解决方案--------------------
((object[,])(srange))[1, 2].ToString()