C# 导出到excel中的日期格式问题
我正在从asp.net网站将导出的excel文档中的数据发送到excel。InsertDate格式为C# 导出到excel中的日期格式问题,c#,asp.net,excel,date,gridview,C#,Asp.net,Excel,Date,Gridview,我正在从asp.net网站将导出的excel文档中的数据发送到excel。InsertDate格式为dd/mm/yyyyy,在大多数情况下,单元格格式为General not Date,因此它与我的系统日期设置不兼容 我需要在excel中获取单元格格式为Date,以便其他同事可以对其进行筛选 从网站获取excel中的dd/mm/yyyyy时,我的windows日期格式为M/dd/yyyy 示例:如果日期为2020年1月24日则在excel中为类型GENERAL,如果日期为2020年1月3日则为类
dd/mm/yyyyy
,在大多数情况下,单元格格式为General not Date,因此它与我的系统日期设置不兼容
我需要在excel中获取单元格格式为Date,以便其他同事可以对其进行筛选
从网站获取excel中的dd/mm/yyyyy
时,我的windows日期格式为M/dd/yyyy
示例:如果日期为2020年1月24日
则在excel中为类型GENERAL
,如果日期为2020年1月3日
则为类型日期
Excel格式图片:
以下是将数据发送到excel的示例代码:
var grid = new System.Web.UI.WebControls.GridView();
grid.AutoGenerateColumns = false;
grid.DataSource = userData;
BoundField column;
column = new BoundField();
column.DataField = "DocumentId";
column.HeaderText = "Document No.";
grid.Columns.Add(column);
column = new BoundField();
column.DataField = "InsertDate";
column.HeaderText = "Document Date";
grid.Columns.Add(column);
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=Report.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
StringWriter sw = new StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(sw);
grid.AllowPaging = false;
grid.DataBind();
grid.RenderControl(hw);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
您根本没有生成Excel文件。您正在生成一个HTML文件,然后使用.XLS扩展名和MIME为其提供服务。那是个坏主意。并非所有可以打开Excel文件的应用程序都知道如何处理此文件。那些这样做的人会抱怨它可能是腐败的。相反,请使用诸如或之类的库来生成有效的Excel文件。帮助您修复当前代码将是浪费时间,因为您无论如何都需要完全重写此代码。是的,较新版本的Excel将在每次打开此文件时抛出一条警告消息,这不好。使用其中一个引用的库,或者需要在每个GridViewRow中循环,并仅删除所需的文本(即创建StringBuilder,每行都是使用逗号或制表符等分隔符的行内容)。