C# 在Excel中导出System.Web.Ui.WebControl.Table

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

当我们使用HTML表格单元逻辑在excel中导出表格时,如何在excel中显示前导零? 如果数字格式为“00001”,则excel会自动将其转换为“1”
但我希望它是“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> ";