C# 我无法使用epplus将日期筛选为月份、年份、日期和生成的excel
我有一个视图,从中过滤数据并显示搜索结果,我将日期格式更改为C# 我无法使用epplus将日期筛选为月份、年份、日期和生成的excel,c#,.net,sql-server,excel,epplus,C#,.net,Sql Server,Excel,Epplus,我有一个视图,从中过滤数据并显示搜索结果,我将日期格式更改为 convert(varchar(11),getdate(),113) 这是视图中的格式 在excel中下载之后,它只是给出了所有日期。没有可用的分组。 我尝试了几种格式来更改Excel中的日期格式以及类似代码的格式 ews.Column(i).Style.Numberformat.Format = "d-mmm-yy"; 但是没有用 我的视图返回日期,如2014年3月19日 我希望将日期分组,格式为2014年3月19日 请给我一
convert(varchar(11),getdate(),113)
这是视图中的格式
在excel中下载之后,它只是给出了所有日期。没有可用的分组。
我尝试了几种格式来更改Excel中的日期格式以及类似代码的格式
ews.Column(i).Style.Numberformat.Format = "d-mmm-yy";
但是没有用
我的视图返回日期,如2014年3月19日
我希望将日期分组,格式为2014年3月19日
请给我一个可行的答案。不要在视图中进行任何转换,例如,让它返回getdate()并在EPPlus代码中设置格式。我将其用于我的一个项目,它将允许在Excel中正确选择/设置格式。我同意Jordan的观点,即不应在数据库中设置日期格式,而应将其作为SQL DATETIME,C#DATETIME返回到.NET代码中。如果您这样做,您就可以更好地控制如何将其写入电子表格
select replace(convert(varchar(11),getdate(),113),' ','-')
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();
}
您确定吗,使用
convert(varchar(11),getdate(),113)
得到的“日期”实际上是Excel中的日期,而不仅仅是文本?对于数据传输,我将使用任何ISO日期格式yyyy-mm-dd。因此,使用convert(varchar(10),getdate(),120)
在Excel中获取真正的日期,然后在Excel中对其进行格式设置。我尝试了相同的方法,但没有用,它以该格式显示日期,但已完成分组。请避免使用代码答案解决方案,解释一下发生了什么,我刚得到了日期,然后格式化了,所以它对我很有用。