【问题标题】:I am not able to filter date to Month, Year, Date with generated excel using epplus我无法使用 epplus 生成的 excel 将日期过滤为月、年、日期
【发布时间】:2014-09-08 11:04:28
【问题描述】:

我有一个视图,我从中过滤数据并显示搜索结果,我将日期格式更改为

convert(varchar(11),getdate(),113) 

这是视图中的格式

在 excel 中下载后,它只是给出了所有日期。没有可用的分组。 我尝试了几种格式来更改 Excel 中的日期格式以及类似

的代码
ews.Column(i).Style.Numberformat.Format = "d-mmm-yy";

但没用。

我的视图返回日期如19 Mar 2014

我想将日期分组为19-Mar-2014

请给我一个可行的答案。

【问题讨论】:

  • 你确定,你用convert(varchar(11),getdate(),113)得到的“日期”真的是Excel中的日期,而不仅仅是文本?对于数据传输,我会使用 ISO 日期格式 yyyy-mm-dd。因此,请使用convert(varchar(10), getdate(), 120) 在 Excel 中获取真正的日期,然后在 Excel 中对其进行格式化。

标签: c# .net sql-server excel epplus


【解决方案1】:

不要在视图中进行任何转换,例如只需让它返回 getdate() 并在 EPPlus 代码中设置格式。我将它用于我的一个项目,它将允许在 Excel 中正确选择/格式化这条路线。

【讨论】:

  • 我刚得到日期,然后格式化,所以它对我有用。
【解决方案2】:

我同意 Jordan 的观点,您不应该格式化数据库中的日期,而是将其作为 SQL DATETIME、C# DateTime 返回到您的 .NET 代码。如果这样做,您可以更好地控制如何将其写入电子表格。

var file = new FileInfo(@"C:\Temp\ExcelDemo.xlsx");
using (var package = new ExcelPackage(file))
{
    var worksheet = package.Workbook.Worksheets.Add("Demo");

    var date = DateTime.Now;
    worksheet.Cells[1, 1].Value = @"Date Raw";
    worksheet.Cells[1, 2].Value = @"Date Raw with Style.Numberformat.Format = ""D-MMM-YY""";
    worksheet.Cells[1, 3].Value = @".ToString()";
    worksheet.Cells[1, 4].Value = @".ToString(dd MMM yy)";
    worksheet.Cells[1, 5].Value = @".ToString(yyyy-MM-ddTHH\:mm\:ss.fffffffzzz)";

    worksheet.Column(2).Style.Numberformat.Format = "D-MMM-YY";

    worksheet.Cells[2, 1].Value = date;
    worksheet.Cells[2, 2].Value = date;
    worksheet.Cells[2, 3].Value = date.ToString();
    worksheet.Cells[2, 4].Value = date.ToString(@"dd MMM yy");
    worksheet.Cells[2, 5].Value = date.ToString(@"yyyy-MM-ddTHH\:mm\:ss.fffffffzzz");

    package.Save();
}

【讨论】:

    【解决方案3】:
    select replace(convert(varchar(11),getdate(),113),' ','-')
    

    【讨论】:

    • 我也试过了,但没用,它以那种格式显示日期,但是分组完成了。
    • 请避免使用代码答案解决方案,并解释发生了什么
    猜你喜欢
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    相关资源
    最近更新 更多