使用C#Interop在Excel列中的两个特定日期之间过滤日期

时间:2018-12-14 05:38:46

标签: c# date excel-interop autofilter

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

输入_1:从日期(dd-mmm-yy)开始,例如:18年12月1日

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

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

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

enter image description here

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

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

仍然没有帮助! 我开始认为,不可能通过Interop做到这一点!

1 个答案:

答案 0 :(得分:1)

以下代码对我有用。您只需要将其他参数传递给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才能正常工作。