根据不同文化的EPPlus号码格式

问题描述 投票:0回答:2

这是Excel截图链接展示的例子 在某一单元格中,它由双倍的值组成,但在单元格中显示四舍五入的值。

如:如果单元格中的值是553236,但原值是553236.456001。

而且只有当点击该单元格时,才能在顶部栏中看到该值。

但我的问题是,我已经将原始值转换成了意大利货币,如何让它和上面一样呢?

  • 在意大利文化中,553,236.456的值将被转换为553.236,456。
  • 只能显示553.236,当点击某个单元格时,顶部栏的值应该是553,236.456。

为了将数值转换为意大利文化,我使用了以下代码。

Convert.ToDouble(cellValue).ToString("C", CultureInfo.CreateSpecificCulture("it-IT")).Split(' ')[0]

用拆分方式不显示货币符号

c# epplus cultureinfo
2个回答
0
投票

你需要对数据单元格进行格式化。

通过设置以下属性指定一个数字或自定义格式。

dataCell.Style.Numberformat.Format

在Excel中自己生成你的自定义格式,然后复制该格式并将其设置为上述属性即可。

在Excel中可以通过右击单元格,选择格式化单元格来访问单元格格式。


0
投票

经过多次试验,如

cell.Value = Convert.ToDouble(cellValue,new CultureInfo("it-IT").NumberFormat);

cell.Value = Convert.ToDouble(cellValue).ToString("N",System.Globalization.CultureInfo.CreateSpecificCulture("it-IT")).Split(',')[0];

我的理解是,数字格式或数字根据文化是取决于你的系统的区域。如果数字被转换为不同的文化,不显示或显示错误的格式,这是本地系统的地区的原因。如果你改变你的区域到那个特定的文化。你会得到完美的答案。我只是按照我的国家格式在代码中做了像使用

cell.Style.Numberformat.Format = "#,##0";

这样就能正常工作了。在提交代码到svn后,当我试着从主网站导出Excel时,根据系统的地区,它工作得很好。如果我改成意大利语,Excel输出的数字是意大利语格式,而当我改成印度语时,数字是印度数字格式。

所以不用担心你想要什么文化,根据你的文化来写就可以了。如果你还想根据特定的文化得到数字,就用上面的第二段代码,但问题是你会得到以文本形式存储的数字。

© www.soinside.com 2019 - 2024. All rights reserved.