首页 > 解决方案 > 使用 C# 互操作过滤 Excel 列中两个特定日期之间的日期

问题描述

只是尝试使用 c# 过滤 Excel 中的列。
我的重点是根据两个日期过滤列。

Input_1:从日期 (dd-mmm-yy) 例如:01-Dec-18

Input_2:迄今为止 (dd-mmm-yy) 例如:18 年 12 月 10 日

Excel 列包含 dd-mm-yyyy 中的随机日期(例如:07-11-2018)

如何在此列中应用过滤器,以便我可以在 Input_1 和 Input_2 提到的日期中修改列日期

在此处输入图像描述

我试图将过滤器应用于列:

excelRange.AutoFilter(excelDATESColumn_Number,FromDateInput_1,Excel.XlAutoFilterOperator.xlAnd,Missing.Value, true);

仍然没有帮助!我开始想,不可能通过互操作来做到这一点!

标签: c#dateexcel-interopautofilter

解决方案


以下代码对我有用。您只需要将附加参数传递给 AutoFilter 方法。

DateTime dt1 = new DateTime(2018, 11, 06);
DateTime dt2 = new DateTime(2018, 11, 13);
var r = excelRange.AutoFilter(3, ">=" + dt1.ToOADate(), Excel.XlAutoFilterOperator.xlAnd, "<=" + dt2.ToOADate());

请注意,我必须将日期转换为 OADate 才能正常工作。


推荐阅读