ClosedXML 中的时间格式验证

Time format Validation in ClosedXML

我正在使用 ClosedXMl 创建 Excel 文件,并希望在输入 "HH:MM" 以外的时间格式时设置警告消息。 我试过下面的代码,但在输入“1”后它也没有显示错误消息,但同样适用于日期格式。

       ws.Cell("D7").Style.NumberFormat.Format = "hh-mm";
       ws.Cell("D7").DataValidation.Time.EqualOrGreaterThan(new TimeSpan(0, 0, 0));
       ws.Cell("D7").SetDataValidation().ErrorStyle = XLErrorStyle.Stop;
       ws.Cell("D7").SetDataValidation().ErrorMessage = "Date Format HH MM";

适用于日期的代码(输入 1 后弹出警报消息)

      ws.Cell("T5").Style.NumberFormat.Format = "dd-mmm-yyyy";
      ws.Cell("T5").SetDataValidation().Date.EqualOrGreaterThan(new DateTime(2000, 1, 1));
      ws.Cell("T5").SetDataValidation().ErrorStyle = XLErrorStyle.Stop;
      ws.Cell("T5").SetDataValidation().ErrorMessage = "Date Format DD MMM YYYY";

可能DataValidation.Time.EqualOrGreaterThan(new TimeSpan(0, 0, 0));中Time的EqualOrGreaterThan方法没有Time 属性。但是试试下面的方法。

您可以做的一件事是在日期验证中将时间和日期放在一起。

  ws.Cell("T5").Style.NumberFormat.Format = "dd-MM-yyyy HH:mm:ss";
  ws.Cell("T5").SetDataValidation().Date.EqualOrGreaterThan(new DateTime(2008, 5, 1, 8, 30, 52)); // first 
  ws.Cell("T5").SetDataValidation().ErrorStyle = XLErrorStyle.Stop;
  ws.Cell("T5").SetDataValidation().ErrorMessage = "Date Format DD MMM YYYY HH mm ss";