C# Excel单元格格式-日期符号
我有一个DataGridView,其中定义了一个日期,如: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;@";
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));
}
也许你应该在第一行写
=
,而不是-
?