单元格值在excel中读作####

时间:2010-04-30 11:32:35

标签: c# excel

我正在使用命名范围从excel中读取一个单元格值,有时候列宽小于单元格中存在的值,因此当它是一个巨大的数字时它会显示为#####。 / p>

当我从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

3 个答案:

答案 0 :(得分:3)

没有任何代码可以阅读,我猜你正在阅读一个显示字符串或类似的东西,Excel会在每次行宽变化时更新。

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

答案 1 :(得分:2)

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

Excel中的日期/时间内部存储为数字,表示自1900年1月0日以来的天数加上小数部分代表当时24小时的分数,因此您的日期将以整数形式出现。

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

答案 2 :(得分:0)

您是否可能尝试导入负日期? Excel不能很好地处理这些,处理日期,因为双打通常可以正常工作。