Epplusで生成されたExcelシートがあり、いくつかの問題が発生しています。同様の課題を解決した人から指示を受けたいと考えています。 double値に数値書式を適用する必要があり、このようにExcelで表示したいです。
ここに私のコードがあります
ws.Cells[row, col].Style.Numberformat.Format = "##0.0";
最終的なExcelファイルでは、この形式の最後に常にE + 0が追加されるため、代わりにこのような最終的な値が表示されます。
生成されたExcelシートの書式セルをチェックインすると、書式が適用された## 0.0ではなく、## 0.0E + 2として表示されることがわかります。何が悪いのでしょうか?
EPPlusの数値形式オプションは次のとおりです。
//integer (not really needed unless you need to round numbers, Excel will use default cell properties)
ws.Cells["A1:A25"].Style.Numberformat.Format = "0";
//integer without displaying the number 0 in the cell
ws.Cells["A1:A25"].Style.Numberformat.Format = "#";
//number with 1 decimal place
ws.Cells["A1:A25"].Style.Numberformat.Format = "0.0";
//number with 2 decimal places
ws.Cells["A1:A25"].Style.Numberformat.Format = "0.00";
//number with 2 decimal places and thousand separator
ws.Cells["A1:A25"].Style.Numberformat.Format = "#,##0.00";
//number with 2 decimal places and thousand separator and money symbol
ws.Cells["A1:A25"].Style.Numberformat.Format = "€#,##0.00";
//percentage (1 = 100%, 0.01 = 1%)
ws.Cells["A1:A25"].Style.Numberformat.Format = "0%";
//accounting number format
ws.Cells["A1:A25"].Style.Numberformat.Format = "_-$* #,##0.00_-;-$* #,##0.00_-;_-$* \"-\"??_-;_-@_-";
小数点と千の区切り記号を独自のローカライズに変更しないでください。 Excelがそれを行います。
いくつかのDateTimeフォーマットオプションをリクエストしてください。
//default DateTime pattern
worksheet.Cells["A1:A25"].Style.Numberformat.Format = DateTimeFormatInfo.CurrentInfo.ShortDatePattern;
//custom DateTime pattern
worksheet.Cells["A1:A25"].Style.Numberformat.Format = "dd-MM-yyyy HH:mm";