gpt4 book ai didi

c# - 使用 C# 在 Excel 中设置货币格式

转载 作者:太空狗 更新时间:2023-10-30 01:29:14 27 4
gpt4 key购买 nike

我有一个 C# 模型

    public class Model
{
public int CurrencyId{ get; set; }
public decimal? ValueMoney{ get; set; }
}

我从数据库收到了 List<Model>

我想在 Excel 工作表中以货币格式编写 ValueMoneys,并且根据 CurrencyId,它必须是美元 $ 或巴西雷亚尔 R$。

我正在使用 Microsoft.Office.Interop.Excel;

我的代码是这样的:

var data = GetValues().ToList();
Application xlApp = new Application();
Workbook xlWorkBook = null;
Worksheet xlWorkSheet = xlWorkBook.Worksheets[1];

for (int i = 1; i < data.count; i++){
xlWorkSheet.Cells[i, 1] = data[i].ValueMoney!= null ? data[i].CurrencyId == 2 ? data[i].ValueMoney.Value.ToString("C", new CultureInfo("pt-BR")) : data[i].ValueMoney.Value.ToString("C", new CultureInfo("en-US")) : "";
((Range)xlWorkSheet.Cells[i, 1]).Style = "Currency" ;
}

问题是,在 Excel 中,它向我显示这是一个字符串的警告,并要求更改为数字格式。

我正在尝试使用

xlWorkSheet.Cells[i, 1] = data[i].ValueMoney
((Range)xlWorkSheet.Cells[i, 1]).NumberFormat = "$ #,##0.00"

但它总是显示 R$,因为我在巴西。提前感谢您的帮助。

[更新]有效

xlWorkSheet.Cells[i, 1] = data[i].ValueMoney;
((Range)xlWorkSheet.Cells[i, 1]).NumberFormat = data[i].CurrencyId == 2 ? "$ #,##0.00" : "[$$-409] #,##0.00";

最佳答案

美元 $ 的语言环境代码是 [$$-en-US],而巴西雷亚尔 R$ 的语言环境代码是 [$R$-pt-BR]。例如:

.NumberFormat = "[$$-en-US] #,##0.00";

区域设置代码可以通过在 Excel 单元格格式对话框的货币部分设置符号,然后在同一对话框的自定义部分检查相应的数字格式来找到。

关于c# - 使用 C# 在 Excel 中设置货币格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53416282/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com