使用c#.net互操作框架控制台从excel文件中获取随机单元格

使用c#.net互操作框架控制台从excel文件中获取随机单元格,c#,excel,random,C#,Excel,Random,使用c#.net framework consoleApp从excel文件中获取一个随机单元格,因此我尝试了此操作,但出现了以下异常: System.Runtime.InteropServices.ComeException:'来自HRESULT的异常: 0x800A03EC' 你很接近 请注意,randomName.Next(行)可以返回零。如果是这样的话,.Cells[randomName.Next(rows),1]将显示您看到的错误 如果您的工作表上没有任何内容,则行数将始终等于1,并且您

使用c#.net framework consoleApp从excel文件中获取一个随机单元格,因此我尝试了此操作,但出现了以下异常:

System.Runtime.InteropServices.ComeException:'来自HRESULT的异常: 0x800A03EC'

你很接近

请注意,
randomName.Next(行)
可以返回零。如果是这样的话,
.Cells[randomName.Next(rows),1]
将显示您看到的错误

如果您的工作表上没有任何内容,则行数将始终等于1,并且您有50%的几率随机数为零

解决方案:将最小值设置为1,如下所示:
Next(1,行)

你很接近

请注意,
randomName.Next(行)
可以返回零。如果是这样的话,
.Cells[randomName.Next(rows),1]
将显示您看到的错误

如果您的工作表上没有任何内容,则行数将始终等于1,并且您有50%的几率随机数为零

解决方案:将最小值设置为1,如下所示:
Next(1,行)

Workbook excelBook = excelApp.Workbooks.Open(@"C:\\Projects\\ExcelSingleValue\\kTest.xlsx");
_Worksheet excelSheet = excelBook.Sheets[1];
Range excelRange = excelSheet.UsedRange;

int rows = excelRange.Rows.Count;
int cols = excelRange.Columns.Count;

Random randomName = new Random(); 
Console.WriteLine((excelRange.Cells[randomName.Next(rows),1].Value2.ToString()));
Console.WriteLine((excelRange.Cells[randomName.Next(1, rows),1].Value2.ToString()));