У меня есть модель на C #
public class Model
{
public int CurrencyId{ get; set; }
public decimal? ValueMoney{ get; set; }
}
, и из базы данных я получаю List<Model>
Я хочу записать ValueMoneys в листе Excel в формате валюты и в зависимости от 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";