2013-01-15 24 views
16

Excel için bir Eklenti geliştirdim, böylece bir MySQL veritabanından bazı sayıları belirli hücrelere ekleyebilirsiniz. Şimdi bu hücreleri para birimine dönüştürmeye çalıştım ve bununla ilgili iki problemim var. 1. Biçimlendirilmiş hücreler üzerinde bir formül kullanırken, örneğin şu şekilde gösterilir: "353,2574 €". Onu uygun bir şekilde göstermek için ne yapmam gerekiyor? 2. Bazı hücreler boştur ancak para biriminde de biçimlendirilmelidir. Aynı biçimi kullanırken, toplam formül için kullandım ve bir şey yazdım, sadece görüntülenen sayı var. Hayır "€", hiçbir şey. O nedir? Bir Excel.Range belirtilen ve aralıkExcel hücrelerini biçimlendirme (para birimi)

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

biçimlendirmek için bu kullanılır Ama aynı zamanda

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

herhangi bir fikir birisi

çalıştı?

cevap

15

Bu benim için çalışıyor. Ben bin ayırıcı olarak virgül ile 2 ondalık basamaklarda para biçimlendiren excel testi uygulaması var. Excel Dosyası üzerindeki verileri yazan Konsol Uygulaması aşağıdadır.

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; } 
    } 
} 

Microsoft.Office.Interop.Excel dll size referans olması Çıktı emin olun

enter image description here

İlgili konular