我希望以编程方式从Excel工作表中提取数据并将其插入数据库表中。
如何确定工作表中的列数和行数或以其他方式迭代行?
我有
Excel._Worksheet worksheet = (Excel._Worksheet)workbook.ActiveSheet;
我尝试了worksheet.Range.Rows.Count
抛出
索引属性'Microsoft.Office.Interop.Excel._Worksheet.Range'具有 必须提供的非可选参数
需要做什么?
答案 0 :(得分:34)
public void IterateRows(Excel.worksheet worksheet)
{
//Get the used Range
Excel.Range usedRange = worksheet.UsedRange;
//Iterate the rows in the used range
foreach(Excel.Range row in usedRange.Rows)
{
//Do something with the row.
//Ex. Iterate through the row's data and put in a string array
String[] rowData = new String[row.Columns.Count];
for(int i = 0; i < row.Columns.Count; i++)
rowData[i] = row.Cells[1, i + 1].Value2.ToString();
}
}
这个编译和运行对我来说很棒!我正在使用它将缺少字段的行提取到错误日志中。
答案 1 :(得分:18)
我认为你实际上是在寻找最后一行。在这种情况下,你需要这样写:
Range UsedRange = worksheet.UsedRange;
int lastUsedRow = UsedRange.Row + UsedRange.Rows.Count - 1;
答案 2 :(得分:2)
查看Excel中的UsedRange属性。