J'utilise les classs Microsoft Excel dans le cadre d'un programme que j'écris. Je tente d'append une valeur décimale (item.Amount) à une cellule Excel; mais je reçois l'erreur suivante:
+ $exception {"Operator '+=' cannot be applied to operands of type 'double' and 'decimal'"} System.Exception {Microsoft.CSharp.RuntimeBinder.RuntimeBinderException}
Je comprends ce qui dit, mais je ne sais pas comment forcer le programme à afficher datatables Excel comme décimales au lieu d'un double. Cette ligne ci-dessous me donne des problèmes:
foreach (SalesItem item in store.salesPLUItems) { this.sheet.Range[item.colNumber + row].Value2 += item.amount; if (item is CreditSales && item.colNumber != "") { this.sheet.Range[((CreditSales)item).countCol + row].Value += ((CreditSales)item).itemCount; } }
J'ai essayé l'ajout suivant:
// ensure Excel sees value as decimal this.sheet.Range[item.colNumber + row].Value = Convert.ToDecimal(this.sheet.Range[item.colNumber + row].Value); this.sheet.Range[item.colNumber + row].Value2 += item.amount;
sans succès. Aucun des éléments suivants ne comstack même
Convert.ToDecimal( this.sheet.Range[item.colNumber + row].Value) += item.amount; (this.sheet.Range[item.colNumber + row].Value as Decimal) += item.amount;
J'ai essayé de jeter l'item.amount à un double. Cependant, j'ai toujours reçu l'erreur, juste à une autre ligne; les rôles ont simplement été inversés: la valeur de la gamme Excel était considérée comme décimale et item.amount comme double.
Merci pour tout conseil.