我有一个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的功能。专业权利?
答案 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));
}