我无法使用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),' ','-')