在Excel应用自动格式化之前获取单元格值

时间:2013-01-23 01:42:39

标签: c# excel

在Excel将自动格式化应用于单元格之前,我需要获取用户输入单元格的值。例如,1230E45转换为1.23E + 48(科学计数法)。

我知道用户可以通过将单元格预格式化为文本来避免此问题,但我不希望他/她每次都这样做。

有没有办法在编辑模式下捕获keydown来存储用户输入的内容?

或更好的主意......

2 个答案:

答案 0 :(得分:0)

  

我知道用户可以通过预先格式化单元格来避免此问题   文字,但我不希望他/她每次都这样做。

如果输入单元格位于某个定义的区域中,假设有1个或多个列 - 您可以使用常用的“单元格属性”对话框将整个区域预格式化为文本

也许这有点直截了当,但你的输入中没有任何内容可以让我的解决方案完全不可能)

答案 1 :(得分:0)

Excel仅为显示目的格式化数字 - 基础值存储为可使用Cell.Value2访问的双精度浮点数。
所以大概是你在谈论Excel将一些看起来像数字(1230E45 ... 1992年9月24日等)的东西自动转换成数字,当你想要它们是文本时。

如果有的话可能解决方案是:

  • 捕获表单中的数据,然后将其传输到表单中的Excel 你想要
  • 在输入数据后对数据进行后处理,并将其转换回您想要的表单
  • 选择性地将单元格格式化为文本(有效地预创建工作表单,供用户填写)
  • 使用表单控件(如数据验证,列表框等)以允许选择列表用户输入