如何检查单元格是否为空(Excel \ Visual C#)

时间:2013-06-15 12:20:17

标签: c# excel cell

对你来说这可能是一个简单的问题,我看到了很多关于它的话题,但没有一个给我我需要的答案。 我的目的是检查Sheet1中每行的行,以便发现有多少行,所以我放了一个do,而一旦它到达一个空白单元就应该停止

示例:

  

第1行数据第2行数据第3行数据第4行数据第5行数据

     

第6行数据
第7行数据

在这种情况下,我只需要前5行,所以do \ while检查一旦到达空白单元格就会停止。这种情况不会发生,因为检查不会循环(它在完成一个圆圈之后停止,就像它找到一个空白单元格,即使它填满了数据)。

string str;
int rCnt = 11; //the data I need is after the 10th row in excel
int cCnt = 1;
int valori = 1;

Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(label4.Text, 0, false, 5, "", "", 
                                                 false, Excel.XlPlatform.xlWindows, 
                                                 "", true, false, 0, true, false, 
                                                 false);
Excel.Sheets xlsheet = xlWorkbook.Worksheets;
string sheet1 = "Sheet1";
Excel.Worksheet xlWorksheet = (Excel.Worksheet)xlsheet.get_Item(sheet1);
Excel.Range xlCell;   

do
{
    rCnt++;
    str = "A" + rCnt;
    xlCell = (Excel.Range)xlWorksheet.get_Range(str, str);
} while (xlCell.Value2 == null);

我尝试将Value2更改为ValueText并尝试设置==“”而不是null。

6 个答案:

答案 0 :(得分:3)

如果你想要在到达空白单元格时停止循环,那么..尝试更改

while (xlCell.Value2 == null);

while (! IsNull(xlCell.Value2));

答案 1 :(得分:2)

您可以使用所选单元格的#close-btn { background: red; outline: none; } 属性。可以通过“ as”将其转换为字符串类型。结果字符串可以像往常一样在C#中像往常一样检查

Text

答案 2 :(得分:1)

问题主要来自于您不知道预期的数据类型。当我使用Excel阅读时,我经常做类似的事情:

var _cell = range.Cells[1, 2].Value2;
if (_cell.GetType() != typeof(Double))

在你的实例中,如果你总是得到一个返回的字符串,那么你应该能够假设演员:

string _str = (string)(range.Cells[str, str] as Excel.Range).Value2;

然后检查是否为空。

答案 3 :(得分:1)

检查单元格的简单方法是空的:

 if (sheet.Cells[4,3] == null || sheet.Cells[4,3].Value2 == null || sheet.Cells[4,3].Value2.ToString() == "")
   MessageBox.Show(“cell on row 4 col 3 is empty”);

答案 4 :(得分:0)

do
{
    rCnt++;
    str = Sheet.Cells[rCnt, 5].Value;
} while (str != null);

答案 5 :(得分:0)

这对我有用:

string wwdEmpty = Convert.ToString(excelRange.Cells[5, 14].value2);
// this is working code with NULL Excell cell 

下面的代码不起作用:

string wwdEmpty =(excelRange.Cells[5, 4] as Excel.Range).Value2.ToString();

使用此代码时出现异常。