2013-01-15 29 views
16

Excel用のアドインを開発しました。これにより、MySQLデータベースの一部の数値を特定のセルに挿入することができます。今ではこれらのセルを通貨にフォーマットしようとしましたが、それには2つの問題があります。 1.書式設定されたセルで式を使用する場合、たとえば合計は "353,2574€"のように表示されます。それを適切な方法で表示するためには何が必要ですか? 2.一部のセルは空ですが、通貨でもフォーマットする必要があります。私が合計の式に使用した同じ書式を使用して何かを入力すると、表示される数値だけが表示されます。 「€」はありません。それは何ですか? 私はExcel.Rangeを指定し、範囲Excelセル(通貨)の書式設定

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

をフォーマットするために、この使用しかし、私はまた

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

任意のアイデアを誰か

を試してみましたか?

答えて

15

これは私のために働く。私は1000の区切り文字としてカンマで2小数点以下の桁に通貨をフォーマットする優れたテストアプリケーションを持っています。以下は、Excelファイルにデータを書き込むコンソールアプリケーションです。

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をあなたが参照した出力を確認してください

enter image description here

関連する問題