Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Excel单元格中正确地将文本存储为数字_C#_Excel - Fatal编程技术网

C# 如何在Excel单元格中正确地将文本存储为数字

C# 如何在Excel单元格中正确地将文本存储为数字,c#,excel,C#,Excel,在搜索了网站上的其他主题后,没有找到正确的答案,我打开了自己的帖子。如果它存在,我还没有看到,请评论 我通过C#(使用Microsoft.Office.Interop)以编程方式创建Excel工作表。我用soap请求填充单元格,诸如此类 问题是,对于每个字段,我都将值(货币)作为字符串,格式如下X,X,X或X,XX(西班牙文化)。因此,当我用文本填充每个字段时,如果字符串的格式为“X”,则将其存储为数字,否则将显示警告消息“数字存储为文本” 因此,我尝试将字符串转换为数字,然后填充具有货币格式的

在搜索了网站上的其他主题后,没有找到正确的答案,我打开了自己的帖子。如果它存在,我还没有看到,请评论

我通过C#(使用Microsoft.Office.Interop)以编程方式创建Excel工作表。我用soap请求填充单元格,诸如此类

问题是,对于每个字段,我都将值(货币)作为字符串,格式如下
X
X,X
X,XX
(西班牙文化)。因此,当我用文本填充每个字段时,如果字符串的格式为“X”,则将其存储为数字,否则将显示警告消息“数字存储为文本”

因此,我尝试将字符串转换为数字,然后填充具有货币格式的单元格,结果在excel工作表中是正确的,但单元格值四舍五入错误

我只需要将字符串转换成只有2个密码的十进制值

xlRng = xlWorkSheet.get_Range("A2", "A100");
xlRng.Style.NumberFormat = "0,00";

xlWorkSheet.Cells[2,1] = Convert.ToSingle(stringWithValue);
例如:

  • 字符串值=86,72
  • 单元格值(在excel工作表中)=86,72-->它是 对
  • 单元格值(在公式文本字段中)=867200012207031

如果可能,远离双打和单打

`=十进制(“86,72”,10),其中10为基数10


应该这样做。

。如果可以的话,远离单打和双打,他们会给你带来这样的混乱。它很好用,非常简单…贴一个答案,我会接受的;)