2013-01-15 39 views
16

Ho sviluppato un componente aggiuntivo per Excel in modo da poter inserire alcuni numeri da un database MySQL in celle specifiche. Ora ho provato a formattare queste celle in valuta e ho due problemi con questo. 1. Quando si utilizza una formula su celle formattate, la somma ad esempio viene visualizzata in questo modo: "353,2574 €". Cosa devo fare per visualizzarlo in modo appropriato? 2. Alcune celle sono vuote ma devono essere formattate anche in valuta. Quando si utilizza lo stesso formato utilizzato per la formula della somma e si digita qualcosa, è visualizzato solo il numero. No "€", niente. Cos'è quello? ho specificato un Excel.Range e usato questo per formattare la gammaFormattazione celle Excel (valuta)

sum.NumberFormat = "#.## €"; 

Ma ho anche provato

sum.NumberFormat = "0,00 €"; 
sum.NumberFormat = "#.##0,00 €"; 

Qualche idea a qualcuno?

risposta

15

Questo funziona per me. Ho un'app di test excel che formatta la valuta in 2 cifre decimali con virgola come separatore delle migliaia. Di seguito è riportata l'applicazione console che scrive i dati su file Excel.

Assicurarsi di aver fatto riferimento Microsoft.Office.Interop.Excel dll

using System.Collections.Generic; 
using Excel = Microsoft.Office.Interop.Excel; 
namespace ConsoleApplication2 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var bankAccounts = new List<Account> { 
       new Account { ID = 345678, Balance = 541.27}, 
       new Account {ID = 1230221,Balance = -1237.44}, 
       new Account {ID = 346777,Balance = 3532574}, 
       new Account {ID = 235788,Balance = 1500.033333} 
}; 
      DisplayInExcel(bankAccounts); 
     } 
     static void DisplayInExcel(IEnumerable<Account> accounts) 
     { 
      var excelApp = new Excel.Application { Visible = true }; 
      excelApp.Workbooks.Add(); 
      Excel._Worksheet workSheet = (Excel.Worksheet)excelApp.ActiveSheet; 
      workSheet.Cells[1, "A"] = "ID Number"; 
      workSheet.Cells[1, "B"] = "Current Balance"; 
      var row = 1; 
      foreach (var acct in accounts) 
      { 
       row++; 
       workSheet.Cells[row, "A"] = acct.ID; 
       workSheet.Cells[row, "B"] = acct.Balance; 

      } 
      workSheet.Range["B2", "B" + row].NumberFormat = "#,###.00 €"; 
      workSheet.Columns[1].AutoFit(); 
      workSheet.Columns[2].AutoFit(); 
     } 
    } 
    public class Account 
    { 
     public int ID { get; set; } 
     public double Balance { get; set; } 
    } 
} 

L'uscita

enter image description here

Problemi correlati