单元格值在Excel中被读为####

我正在使用命名范围从excel中读取单元格值,在某些情况下,列宽小于单元格中存在的值,因此在数量巨大时显示为#####。

当我从csharp读取它是读为#####。 任何修复这个

示例代码:

Excel.Application.get_Range(strRange, Type.Missing).Text.ToString() //If i make it Excel.Application.get_Range(strRange, Type.Missing).Value2.ToString() //and read any date string i get 40390 

没有任何代码可以读取,我猜你正在读取一个显示string或类似的,每次行宽度变化时Excel将更新。

您可能需要阅读更原始的价值。

.Text为您提供了任何您在Excel渲染层中格式化的内容(如果列太小,则为####).Value2为您提供基础的Excel值。

Excel中的date/时间内部存储为表示自1900年1月0日以来的天数加上小数部分表示当天24小时的一小部分的date,所以date以整数forms显示。

如果要将数字转换回date,可以使用格式:例如格式(40390,“ddmmyyyy”)或格式(40390,“dd / mmm / yyyy”)

你可能试图导入否定date? Excel并没有处理好这些,处理date通常是双打的。