C#Excel百分比转换为小数

Kev*_*vin 5 c# excel formatting

我正在从Excel工作表中读取数据.一些数据是百分比值,这些值自动转换为小数 - 即90% - > 0.90.我似乎无法找到阻止这种情况发生的事情.此外,Excel表格字符串上的数据不是全部吗?那么为什么数字格式会发生呢?

任何建议表示赞赏.

问候.

J..*_*... 2

检查 Excel 工作表 - 如果单元格格式为,Percentage则数据仅显示为,例如:90.0%,但存储为0.9

如果您在导入数字之前检查单元格格式,那么您可以处理所需的任何转换。

假设您正在使用 Interop.Excel :

该属性返回的格式字符串与您在Excel 对话框中 Range.NumberFormat使用的格式字符串相同。只是该类型格式字符串的快捷方式,其中类型中的选定内容仅更改格式字符串中小数点后零的数量。Format CellsPercentage0.00%decimal placesPercentage

在此输入图像描述

MSDN - Range.NumberFormat

编辑

如何查找单元格范围的格式的示例:

Worksheet wks = new Worksheet();
String nfmt = (string)((Range)wks.Cells[1,1]).NumberFormat;
Run Code Online (Sandbox Code Playgroud)

其中nfmt将包含一个格式字符串,您可以检查该字符串以%确定单元格(或范围)是否被格式化为将分数显示为百分比。请注意,如果范围跨越具有不同格式字符串的单元格,nfmt则会出现这种情况!NULL