使用C#Excel库在Excel单元格中提供符号的货币值

时间:2018-03-23 21:32:55

标签: c# excel com-interop excel-interop

我正在使用c#创建excel文件。我是不同的列设置,如数字,货币,日期等。我正在设置excel单元格的范围并证明自定义数字格式。但是当我设置货币时,它在excel文件中显示错误的符号。这是我的列设置代码

int row = 9;
int index = 10;
int count = Report.Data.Count - 1;
for (int i = 0; i < columns.Count; i++) {
 switch (columns[i].Type.ToUpperInvariant()) {
  case ColumnSettingType.Number:
   {
    oRange = (Excel.Range) oSheet.Range[oSheet.Cells[index, i + 1], oSheet.Cells[index + count, i + 1]];
    oRange.NumberFormat = "#,###,###";
    break;
   }
  case ColumnSettingType.Currency:
   {
    oRange = (Excel.Range) oSheet.Range[oSheet.Cells[index, i + 1], oSheet.Cells[index + count, i + 1]];
    oRange.NumberFormat = "$ #,###,###.00";
    break;
   }
  case ColumnSettingType.Percentage:
   {
    oRange = (Excel.Range) oSheet.Range[oSheet.Cells[index, i + 1], oSheet.Cells[index + count, i + 1]];
    oRange.NumberFormat = "0.00%";
    break;
   }
  case ColumnSettingType.Date:
   {
    oRange = (Excel.Range) oSheet.Range[oSheet.Cells[index, i + 1], oSheet.Cells[index + count, i + 1]];
    oRange.NumberFormat = "$#,###,###.00";
    break;
   }
 }
 oSheet.Cells[row, i + 1] = columns[i].ColumnName;
}

我的Excel文件显示的是另一个符号,而不是($),另外我需要动态显示此符号。

需要帮助。

enter image description here

1 个答案:

答案 0 :(得分:0)

似乎NumberFormat属性使用$符号表示单元格采用货币格式 - 就我所见,它使用当前的区域设置货币符号。

可以在NumberFormatLocal属性中设置用于单元格/范围的实际货币符号。

设置两者都应将值显示为&#34; $ 1,016.89&#34;

 var format = "$ #,##0.00";
 oRange.NumberFormat = format;
 oRange.NumberFormatLocal = format;