【发布时间】:2019-07-02 19:43:31
【问题描述】:
情况: 我遇到了一个让我发疯的问题。我有一个 Excel 文件,我将其上传到我的 C# 应用程序并使用 Excel.Interop 运行它。
问题: 我想要实现的是以下内容,如果我正在迭代的单元格不为空,我会处理其中的数据,否则我会警告用户单元格为空/空。我遇到的问题如下,在 excel 中的列上是数据类型:日期,出于某种原因,即使使用这么大的 IF 语句:
如果 (xlsRange.Cells[i, j] != null || xlsRange.Cells[i, j].Value != null || xlsRange.Cells[i, j].Value2 != null || xlsRange.单元格[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) {}
日期数据类型列中的空单元格始终输入 IF 语句...所有其他使用一般数据类型格式化的列都像魅力一样工作,但由于某种我无法理解的原因,日期却没有。如果这是一个愚蠢的问题,我很抱歉,但我在这里检查了很多帖子(因此是巨大的 if 语句),但没有一个能够帮助我实现我所需要的。提前感谢任何可以指导我找到解决方案的帮助。
我的预期结果是空的日期数据类型单元格没有进入我构建的可怕的 IF 语句。
【问题讨论】:
-
这似乎有点过头了:-/你能把它分开来看看你的空日期单元格正在触发哪个条件吗?还是先暂时将各种属性读入变量中,以便在逐步执行时查看值?
-
这不是一直都是真的吗?
xlsRange.Cells[i, j].Value.ToString() != "" || xlsRange.Cells[i, j].Value.ToString() != " "。 (除了疯狂的运算符重载)xlsRange.Cells[i, j].Value的结果不等于" "和"",因此该条件始终为真。我很欣赏您的问题实际上是“我如何检测'日期'类型的空单元格”,所以这本身并不能回答您的问题。 -
@Rup,如果我没记错的话,我使用的是 OR,所以如果满足其中任何一个条件,他们将进入 IF 语句,否则不应该......我知道我'我在这个上面,我只是想表明我已经尝试了无数条件,但我的 excel 中的空日期单元格仍然输入 IF 语句。
标签: c# excel date excel-interop