C# 在Excel中导出System.Web.Ui.WebControl.Table
当我们使用HTML表格单元逻辑在excel中导出表格时,如何在excel中显示前导零? 如果数字格式为“00001”,则excel会自动将其转换为“1”C# 在Excel中导出System.Web.Ui.WebControl.Table,c#,asp.net,vb.net,excel-2007,export-to-excel,C#,Asp.net,Vb.net,Excel 2007,Export To Excel,当我们使用HTML表格单元逻辑在excel中导出表格时,如何在excel中显示前导零? 如果数字格式为“00001”,则excel会自动将其转换为“1” 但我希望它是“00001”而不是1。字符串引用它,以便excel将其视为字符串而不是数字。00001不是数字,1是。。。因为除非值本身为0,否则任何数字都不能以0开头。 如果要显示00001,请使用qoutes“”。所以它变成了“00001”。 当您将列或单元格转换为常规文本时,excel也会这样做 我想没有别的办法了 您可以随时向micros
但我希望它是“00001”而不是1。字符串引用它,以便excel将其视为字符串而不是数字。00001不是数字,1是。。。因为除非值本身为0,否则任何数字都不能以0开头。
如果要显示00001,请使用qoutes“”。所以它变成了“00001”。
当您将列或单元格转换为常规文本时,excel也会这样做 我想没有别的办法了
您可以随时向microsoft发送一封包含投诉的电子邮件,并要求更新以解决问题:)。只需在表格中使用样式即可
protected void Btn_ExportClick(object sender, EventArgs e)
{
string style = @"<style> .text { mso-number-format:\@; } </style> ";
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
Response.ContentType = "application/excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gvUsers.RenderControl(htw);
// Style is added dynamically
Response.Write(style);
Response.Write(sw.ToString());
Response.End();
}
protected void gvUsers_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow) {
e.Row.Cells[1].Attributes.Add("class", "text");
}
}
protectedvoidbtn\u ExportClick(对象发送方,事件参数e)
{
字符串样式=@“。文本{mso编号格式:\@;}”;
Response.ClearContent();
AddHeader(“内容处置”、“附件;文件名=MyExcelFile.xls”);
Response.ContentType=“应用程序/excel”;
StringWriter sw=新的StringWriter();
HtmlTextWriter htw=新的HtmlTextWriter(sw);
gvuser.RenderControl(htw);
//样式是动态添加的
回应。写作(风格);
Response.Write(sw.ToString());
Response.End();
}
受保护的void gvUsers_RowDataBound(对象发送方,GridViewRowEventArgs e)
{
如果(e.Row.RowType==DataControlRowType.DataRow){
e、 行。单元格[1]。属性。添加(“类”,“文本”);
}
}
有一种更好的方法可以达到同样的效果,只需添加一行即可。不要创建样式表(.text
)并使用循环为所有标记添加属性,而是直接在所有TD
标记上应用样式
替换
string style = @"<style> .text { mso-number-format:\@; } </style> ";
string style=@“。文本{mso数字格式:\@;}”;
与
string style=@“TD{mso数字格式:\@;}”;
然后删除循环我不想看到“”。我只想回答为0001而不是“0001”amitvyas100688-你试过上面的代码吗?这有用吗?
string style = @"<style> TD { mso-number-format:\@; } </style> ";