[英]I am not able to filter date to Month, Year, Date with generated excel using epplus
I have a view, from which I filter data and show the search results, I changed the Date format to 我有一个视图,可以从中过滤数据并显示搜索结果,我将日期格式更改为
convert(varchar(11),getdate(),113)
This is the format in view 这是视图中的格式
After downloading in excel, it is just giving all dates. 在excel中下载后,它只是给出所有日期。 No grouping is available.
没有分组可用。 I tried several formatting to change the date format in Excel as well as code like
我尝试了几种格式来更改Excel中的日期格式以及类似的代码
ews.Column(i).Style.Numberformat.Format = "d-mmm-yy";
but no use. 但没有用。
My View returns date like 19 Mar 2014
我的查看返回日期如
19 Mar 2014
I want grouping of date with format as 19-Mar-2014
我想按格式将日期分组为
19-Mar-2014
Please suggest me a working answer. 请给我建议一个可行的答案。
Don't do any conversion in the view, eg just have it return getdate() and set the format in EPPlus code. 不要在视图中进行任何转换,例如,让它返回getdate()并在EPPlus代码中设置格式。 I use this for one of my projects and it will allow selection / format correctly in Excel going this route.
我将其用于我的一个项目,它将允许在Excel中正确选择/设置格式。
I agree with Jordan in that you should not format the date within the database, but return it to your .NET code as a SQL DATETIME, C# DateTime. 我同意Jordan的观点,您不应格式化数据库中的日期,而应将其作为SQL DATETIME(C#日期时间)返回到您的.NET代码。 If you do that, you have more control over how you can write it into the spreadsheet.
如果这样做,则可以更好地控制将其写入电子表格的方式。
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),' ','-')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.