Excel单元格格式 - 日期标记

时间:2017-07-19 08:09:26

标签: c# excel date datagridview

我有一个DataGridView,我在其中定义了一个日期:DD/MM/YYYY。当我使用Microsoft.Office.Interop.Excel功能导出我的日期时,Excel会自动将其识别为日期格式,但不会以我想要的方式识别。我的解决方案:

Microsoft.Office.Interop.Excel.Range dateColumn = mySheet.get_Range("E1").EntrireColumn;
dateColumn.NumberFormat = "DD/MM/YYYY;@";

有趣的是,这在Excel 2007专业版中有效。当我在具有Excel 2010 basic的PC上部署应用程序时,它不再起作用。两个Excel版本的语言设置均为英语(美国标准)。这不能是基本VS的功能。专业权利?

1 个答案:

答案 0 :(得分:0)

我很久以前写过这篇文章,我记不起它背后的所有推理,但这就是我的用法:

public static void ChangeDateFormat(Excel.Range cell, string format, bool useLocale)
{
    if (useLocale && !format.Contains("[$"))
    {
        format = "[$-800]" + format;
    }        
    SetProperty(cell, "NumberFormatLocal", new object[] { format });        
}


public static void SetProperty(object target, string name, params object[] args)
{
    target.GetType().InvokeMember(name,
        BindingFlags.SetProperty |
        BindingFlags.Public |
        BindingFlags.Instance,
        null, target, args, new CultureInfo(1033));
}