2016-06-07 1 views
0

Lors de l'application de CellStyle à une cellule à l'aide de GetFormat ou de GetBuiltinFormat pour "#, # 0", le rendu n'est pas rendu dans la cellule. Est-ce que je manque quelque chose?NPOI GetFormat ou GetBuiltinFormat

Par exemple, le nombre rendu sur la cellule doit apparaître comme 10 000 pendant cliquez sur la même la barre de formule doit apparaître 10000

var sheetLabelCellStyle = hssfworkbook.CreateCellStyle(); 
sheetLabelCellStyle.Alignment = HorizontalAlignment.Right; 
sheetLabelCellStyle.DataFormat = hssfworkbook.CreateDataFormat().GetFormat("#,##0"); 
. 
. 
ICell cell = row.CreateCell(j,CellType.Numeric); 
. 
. 
System.Decimal objVal = Convert.ToDecimal(dt.Rows[i][columnName].ToString()); 
columnValue = objVal.ToString("#,#0", CultureInfo.InvariantCulture); 
cell.SetCellValue(columnValue); 
cell.CellStyle = sheetLabelCellStyle; 

Actuellement, il est rendu comme 10000 et dans la barre de formule également sa montrant la même . Bien que le contenu cellulaire souhaité est 10 000 et dans la barre de formule, il doit être 10000

Si je retire la partie objVal convertir à la culture invariante, il apparaît comme 10000,00 dans les deux cellules et formule bar

Répondre

1

Conversion du CellValue doubler le type plutôt qu'une chaîne avant d'affecter SetCellValue résolu le problème. L'attribution d'une chaîne sous forme de chaîne entraînait la perte du format souhaité.