我正在使用命名范围从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
答案 0 :(得分:3)
没有任何代码可以阅读,我猜你正在阅读一个显示字符串或类似的东西,Excel会在每次行宽变化时更新。
您可能需要阅读更原始的价值。
答案 1 :(得分:2)
.Text为您提供在Excel渲染层中格式化的内容(如果列太小,则为####) .Value2为您提供基础Excel值。
Excel中的日期/时间内部存储为数字,表示自1900年1月0日以来的天数加上小数部分代表当时24小时的分数,因此您的日期将以整数形式出现。
如果要将数字转换回日期,可以使用格式:例如 格式(40390,“ddmmyyyy”)或格式(40390,“dd / mmm / yyyy”)
答案 2 :(得分:0)
您是否可能尝试导入负日期? Excel不能很好地处理这些,处理日期,因为双打通常可以正常工作。