作成日: 2022/02/09 最終更新日: 2022/02/09
文書種別
不具合
発生環境
2020J v1(ver.4.5.20201.416)以降
状況
現象確認済み
詳細
SaveExcelメソッドでExcelファイルに保存したとき、通貨形式の数値に小数点が付加された状態で表示されます。なお、実行プログラムの画面上では、数値に小数点は表示されません。
以下のサンプルコードで現象を確認することができます。
◎サンプルコード(VB)
Imports C1.Win.C1FlexGrid
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 値の設定
C1FlexGrid1(1, 1) = 12345
C1FlexGrid1(1, 2) = 12345
' 通貨形式のフォーマットを設定
C1FlexGrid1.Cols(1).Format = "C"
C1FlexGrid1.Cols(2).Format = "C0"
' Excelファイルの出力
C1FlexGrid1.SaveExcel("../../test.xlsx")
End Sub
End Class
◎サンプルコード(C#)
using C1.Win.C1FlexGrid;
namespace Form1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 値の設定
c1FlexGrid1[1, 1] = 12345;
c1FlexGrid1[1, 2] = 12345;
// 通貨形式のフォーマットを設定
c1FlexGrid1.Cols[1].Format = "C";
c1FlexGrid1.Cols[2].Format = "C0";
// Excelファイルの出力
c1FlexGrid1.SaveExcel("../../test.xlsx");
}
}
}
(結果)
実行プログラムの表示
\ 12,345
Excel上の表示
\ 12,345.
※2021J v3(4.5.20213.532)の場合、"C0"は小数点が付加されますが、"C"は付加されません。
これは、以下の修正に関連しています(FlexGridは内部的にExcelファイルの保存にExcel for .NETの機能を使用しているため)。
[Excel] FormatDotNetToXLメソッドで書式文字列を変換しExcelファイルに保存すると、通貨形式の数値に小数点が付加した状態で表示される