这是Excel截图链接展示的例子 在某一单元格中,它由双倍的值组成,但在单元格中显示四舍五入的值。
如:如果单元格中的值是553236,但原值是553236.456001。
而且只有当点击该单元格时,才能在顶部栏中看到该值。
但我的问题是,我已经将原始值转换成了意大利货币,如何让它和上面一样呢?
为了将数值转换为意大利文化,我使用了以下代码。
Convert.ToDouble(cellValue).ToString("C", CultureInfo.CreateSpecificCulture("it-IT")).Split(' ')[0]
用拆分方式不显示货币符号
你需要对数据单元格进行格式化。
通过设置以下属性指定一个数字或自定义格式。
dataCell.Style.Numberformat.Format
在Excel中自己生成你的自定义格式,然后复制该格式并将其设置为上述属性即可。
在Excel中可以通过右击单元格,选择格式化单元格来访问单元格格式。
经过多次试验,如
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输出的数字是意大利语格式,而当我改成印度语时,数字是印度数字格式。
所以不用担心你想要什么文化,根据你的文化来写就可以了。如果你还想根据特定的文化得到数字,就用上面的第二段代码,但问题是你会得到以文本形式存储的数字。