c# - simbolo - formato porcentaje excel
Formato de celdas de Excel(moneda) (1)
Desarrollé un complemento para Excel para que pueda insertar algunos números de una base de datos MySQL en celdas específicas. Ahora traté de formatear estas celdas a la moneda y tengo dos problemas con eso. 1. Al usar una fórmula en celdas formateadas, la suma por ejemplo se muestra así: "353,2574 €". ¿Qué tengo que hacer para mostrarlo de manera adecuada? 2. Algunas celdas están vacías, pero también tienen que estar formateadas en moneda. Cuando uso el mismo formato que usé para la fórmula de la suma y escribo algo, solo se muestra el número. No "€", nada. ¿Que es eso? Especifiqué un Excel.Range y lo utilicé para formatear el rango
sum.NumberFormat = "#.## €";
Pero también lo intenté
sum.NumberFormat = "0,00 €";
sum.NumberFormat = "#.##0,00 €";
¿Alguna idea de alguien?
Esta funciona para mí. Tengo una aplicación de prueba de Excel que formatea la moneda en 2 lugares decimales con una coma como separador de miles. A continuación se muestra la aplicación de consola que escribe datos en el archivo de Excel.
Asegúrese de que ha hecho referencia a dll Microsoft.Office.Interop.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; }
}
}
La salida