如何检查数据类型为Excel的单元格是否为空?

时间:2019-07-02 19:43:31

标签: c# excel date excel-interop

情况: 我遇到了一个让我发疯的问题。我有一个Excel文件,我将其上传到C#应用程序中并使用Excel.Interop来运行它。

问题: 我要实现的目标是以下内容,如果要迭代的单元格不为null,则会处理其中的数据,否则会警告用户该单元格为空/空。我遇到的问题如下,excel中的列中有一个是“数据类型:日期”,出于某种原因,即使使用了这么大的IF语句,也是如此:

  

if(xlsRange.Cells [i,j]!= null || xlsRange.Cells [i,j] .Value!= null || xlsRange.Cells [i,j] .Value2!= null || xlsRange。 Cells [i,j] .Value!= DateTime.MinValue || xlsRange.Cells [i,j] .Value.ToString()!= DateTime.MinValue || xlsRange.Cells [i,j] .Value.ToString() !=“” || xlsRange.Cells [i,j] .Value.ToString()!=“” || xlsRange.Cells [i,j] .Value.ToString()。Length!= 0 || xlsRange.Cells [i,j] .Value2!= DateTime.MinValue || xlsRange.Cells [i,j]!= DateTime.MinValue || string.IsNullOrEmpty(xlsRange.Cells [i,j] .ToString())== false) {}

Date数据类型列中的空白单元格始终会输入IF语句...使用常规数据类型设置格式的所有其他列都可以像超级按钮一样工作,但是Date由于某些原因超出了我的范围。很抱歉,这是一个愚蠢的问题,但是我在这里检查了很多帖子(因此,如果有大量的if语句),但它们都无法帮助我实现所需的功能。在此先感谢您为我提供的帮助。

我的预期结果是,空的“日期数据类型”单元格不会输入我构建的可怕的IF语句。

1 个答案:

答案 0 :(得分:0)

我在我的程序中确实检查了整个“ I”列中每个单元格中的值:

尝试根据您的需要进行返工

var col2 = xlWorkSheet.UsedRange.Columns["I:I", Type.Missing];

            foreach (Microsoft.Office.Interop.Excel.Range item in col2.Cells)
            {
                if (Convert.ToString(item.Value) == null)
                {
                    //Change interior color for full row
                    item.EntireRow.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Cyan);
                }
                else
                {
                    MessageBox.Show("Empty cell");
                }
            }