我想知道是否有人遇到过以下问题并对如何解决它有任何想法:我正在通过 Interop 从 C# 应用程序 (.NET 3.5) 将数据导出到 Excel (2003)。其中一列存储一个看起来是数字的字符串值。也就是说它是一个以 0 开头的数字,例如000123
我需要存储完整的号码,因为它可能是序列号或类似的东西。 Excel 对此并不热衷,所以我想我可以通过将目标单元格设置为常规来解决这个问题。当我导出到 Excel 时,我发现存储的是 123 而不是 000123。
我在调试中运行了该应用程序,并从监视列表中发现(对于“Range range”:
range.NumberFormat = "General"`
this.Rows[iGridRow].Cells[iGridCol].Value = "000123" '/* (datagrid is not truncating it)*/
range.Value2 = 123.0
即使我在此之前设置了数字格式,它似乎也被作为数字处理:
range.NumberFormat = sNumberFormat;
range = (Range)sheet.Cells[iExcelRow, iExcelCol];
range.Value2 = this.Rows[iGridRow].Cells[iGridCol].Value.ToString();
有人可以帮忙吗?
最佳答案
在数字前添加一个撇号 '
。然后 Excel 会将数字视为字符串。
关于c# - Excel 互操作 - 如何停止数字(存储为文本)为 "evaluated",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3131973/