导出到 Excel 时将数字转换为文本

本文关键字:数字 转换 文本 Excel | 更新日期: 2023-09-27 18:34:58

我在网格视图中显示我的数据(逗号分隔的数字(,并且根据需要发生。但是,当我将其导出到 excel 时,该值在显示方面发生了变化

例如,我的值是901155465、978785496 987458986然后它显示为 901,155,465,978,785,496,987,458,986

这就是我将数据集传递到 excel 中的方式。我知道我们也可以渲染 HTML,但我只需要传输数据。


GridView GridView1 = new GridView();
GridView1.DataSource = myDataSet;
GridView1.DataBind();
string style = @" .text { mso-number-format:'@; }  "; 
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=Report.xls");
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
esponse.ContentType = "application/vnd.ms-excel";
System.IO.StringWriter s_Write = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter h_write = new HtmlTextWriter(s_Write);
GridView1.ShowHeader = true;
GridView1.RenderControl(h_write);
Response.Write(style); 
Response.Write(s_Write.ToString());
Response.End();

It seems excel is treating the number as one number and adding comma at appropriate places.

Is there any solution to display data as shown in gridview.

Thanks in advance

导出到 Excel 时将数字转换为文本

try this:

_worksheet.Cells[1, 1] = "='"" + YOUR_VALUE + "'"";

这就是我使用 Interop.Excel 的方式。

Excel 将忽略 (=(,因为它开始一个公式,双引号将告诉 excel 将该值用作字符串。

您也可以尝试导出 excel 样式表:

mso-number-format:"0"   NO Decimals

http://cosicimiento.blogspot.fr/2008/11/styling-excel-cells-with-mso-number.html

因此,您需要将其写入Response

// ...
string style = @"<style> td { mso-number-format:"0"; } </style> ";
// Style is added dynamically
Response.Write(style);
Response.Write(s_Write.ToString());
// ...

试试这个它工作正常

for (int i = 0; i

这个问题困扰了我一年,这对我有帮助。我尝试了许多解决方案 stackoverflow.com 但没有帮助。希望这对某人有所帮助

Dim formatRange As Excel.Range
formatRange = xlWorkSheet.Range("a1", "b1")
formatRange.NumberFormat = "@"

将数据放入单元格 A1 中

xlWorkSheet.Cells(1, 1) = "098"

或者,如果要从数据网格视图复制

xlWorkSheet.PasteSpecial("Text", False, False, Type.Missing, Type.Missing, Type.Missing, True)

http://vb.net-informations.com/excel-2007/vb.net_excel_page_format.htm祝你好运。

"'"'t" + value?.ToString() + "'"";

如果您需要按原样转换和导出数字或任何值,任何人都可以使用此行代码。

就我而言, 值 = "13291440533000102";当我尝试使用 StreamWriter 导出时,该值以 CSV 格式正确导出。但是在打开.csv文件时,excel 将值视为数字。由于数字超过 16 个字符,因此像13291440533000100一样进行了转换。最后一个字符已更改。我已经解决了这个问题。