我无法使用epplus过滤date到生成excel的Month,Year,Date

我有一个看法,从中过滤数据并显示search结果,我将date格式更改为

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

这是视图中的格式

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

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

但没用。

我的查看返回date,如19 Mar 2014

我想要格式为19-Mar-2014的date分组

请给我一个工作答案。

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

我同意Jordan的意思,你不应该格式化数据库中的date,而是把它作为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(); } 
 select replace(convert(varchar(11),getdate(),113),' ','-')