2017-12-20 43 views
0

私はコード内の特定の列にデータを割り当てました。 番号エクセルが生成さEpplusは列を数値としてフォーマットできません

workSheet.Cells["B3:B11"].Style.Numberformat.Format = "#,##0.00";  
workSheet.Cells["B3"].Value = obj.Number1; 
workSheet.Cells["B4"].Value = obj.Number2; 
workSheet.Cells["B5"].Value = obj.Number3; 
workSheet.Cells["B6"].Value = obj.Number4; 
workSheet.Cells["B7"].Value = obj.Number5; 
workSheet.Cells["B8"].Value = obj.Number6; 
workSheet.Cells["B9"].Value = obj.Number7; 
workSheet.Cells["B10"].Value = obj.Number8; 
workSheet.Cells["B11"].Value = obj.Number9; 

として列を変換列がテキスト形式です。私はそれらを数値形式にしたい。助けが必要。

+0

Number#プロパティの 'type'はありますか?これは既存のシートか新しいシートですか?より多くのコードを投稿したいかもしれません。 – Ernie

+0

yes obj.Number#はすべて文字列です。 –

答えて

1

これらがstringsの場合、Epplus/excelはそれを尊重して文字列として保存するので、設定したフォーマットは無視されます。セルの隅に緑の三角形が表示され、数字のように見えます。数字として扱うために

、あなたはこのようなdoublesに変換する必要があります。

workSheet.Cells["B3"].Value = Double.Parse(obj.Number1); 

あなたは、彼らがnullでないか、不適切上記その後、フォーマットされたんだろうと確信している場合、十分な良いことがあります。そうでなければ、次のようなチェックをしたいかもしれません:

double number; 
if (obj.Number1 != null && Double.TryParse(obj.Number1, out number)) 
    workSheet.Cells["B3"].Value = number; 
+0

お返事にはお返事ありがとうございます –

関連する問題