【问题标题】:Excel cell format - date notatonExcel 单元格格式 - 日期表示法
【发布时间】:2017-07-19 08:09:25
【问题描述】:

我有一个 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 的特性。专业吧?

【问题讨论】:

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

标签: c# excel date datagridview


【解决方案1】:

这是我很久以前写的,我不记得它背后的所有推理,但这是我使用的:

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

【讨论】:

    猜你喜欢
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    相关资源
    最近更新 更多