繁体   English   中英

使用EPPlus对范围进行Excel时间验证

[英]Excel time validation for a range using EPPlus

我想使用EPPlus在Excel中验证1:00 PM到11:00 AM之类的列的时间。

时间必须为“ hh:mm AM / PM”格式。

我解决了问题。 这是代码:

            var validationEndTime = workSheet.DataValidations.AddTimeValidation("H:H");
            validationEndTime.ShowInputMessage = true;
            validationEndTime.Prompt = "Add end time in hh:mm AM/PM format as example 9:00 AM or 12:30 PM";
            validationEndTime.ErrorStyle = ExcelDataValidationWarningStyle.stop;
            validationEndTime.ShowErrorMessage = true;
            validationEndTime.Error = "Insert valid time";
            validationStartDate.Operator = ExcelDataValidationOperator.between;
            var timeEnd = validationStartDate.Formula.Value;
            timeEnd.Hour = 00;
            timeEnd.Minute = 00;
            var timeEnd2 = validationStartDate.Formula2.Value;
            timeEnd2.Hour = 23;
            timeEnd2.Minute = 59;
            validationEndTime.Formula.Value = timeEnd;
            validationEndTime.Formula2.Value = timeEnd2;

这将像这样在excel中进行验证:

在此处输入图片说明

我做了很多尝试来使DataValidations.AddDateTimeValidation工作,但对我而言却无效。 因此,我没有在C#中寻找解决方案,而是试图弄清excel如何处理时间。

Excel将时间存储为十进制数字。 因此,我没有使用DataValidations.AddDateTimeValidation,而是使用DataValidations.AddDecimalValidation,将Excel中的开始时间和结束时间转换为10位精度的十进制数。

因此12:00:00变为0.00,而11:59:59 pm变为0.999305555555556。

我的C#代码看起来像这样

    var validdateTime = sheet1.DataValidations.AddDecimalValidation("H:H");
    validdateTime.ShowInputMessage = true;
    validdateTime.Prompt = "Add end time in hh:mm AM/PM format as example 9:00 AM or 12:30 PM";
    validdateTime.AllowBlank = false;
    validdateTime.ShowErrorMessage = true;
    validdateTime.Error = "The time entered is not valid";
    validdateTime.ErrorStyle = ExcelDataValidationWarningStyle.stop;
    validdateTime.Operator = ExcelDataValidationOperator.between;
    validdateTime.Formula.Value = 0.0;
    validdateTime.Formula2.Value = 0.999305555555556;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM