C# Excel单元格格式-日期符号

C# Excel单元格格式-日期符号,c#,excel,date,datagridview,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;@";

我有一个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;@";

有趣的是,这在Excel2007Professional中运行。当我使用Excel2010Basic在PC上部署应用程序时,它不再工作。两个Excel版本的语言设置均为英语(美国标准)。这不可能是“基本”与“专业”对不对?

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

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));
}

也许你应该在第一行写
=
,而不是
-