c# - Excel 互操作 - 如何停止数字(存储为文本)为 "evaluated"

标签 c# excel com-interop

我想知道是否有人遇到过以下问题并对如何解决它有任何想法:我正在通过 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/

相关文章:

java - Java 中 MS Excel 的 Linest 函数

c# - LINQ - 无法从 select 中的用法推断出类型参数

c# - 调试断言失败 : C++ exception in a C# application?

c# - Service Fabric 如何选择用于托管服务的端口?

c# - 应用程序在基于 .NET 的 COM 对象的 CoCreateInstance 期间挂起

.net - 将 .NET COM Interop 程序集与其托管进程断开

c# - 如何将对象集合从 VB6 传递到 .NET?

c# - 如何忽略先前对特定控件的请求的 View 状态?

r - 将一个大的 xlsx 文件导入到 R 中?

excel - 如何在Excel中根据多个特定文本设置条件格式