Excel上で設定したユーザー定義の日時書式が正しく取り込めない場合がある
対象製品
SPREAD for Windows Forms 8.0J
状況
修正済み
詳細
■事象
ユーザー定義の日付が設定されたExcelファイルをSPREADに読み込んだ時、ExcelとSPREADで表示内容が異なります。
具体的には「h"時"mm"分"」や「h"時"mm"分"ss"秒"」のように、時間を表示するユーザー定義書式が正しく適用されません。
■Excel上の表示とSPREADに取り込んだ結果
■Excel側の書式設定
ユーザー定義の日付が設定されたExcelファイルをSPREADに読み込んだ時、ExcelとSPREADで表示内容が異なります。
具体的には「h"時"mm"分"」や「h"時"mm"分"ss"秒"」のように、時間を表示するユーザー定義書式が正しく適用されません。
■Excel上の表示とSPREADに取り込んだ結果
■Excel側の書式設定
回避方法
Service Pack 6(v8.0.3511.2008)で修正済み。
Service Pack を適用せずに対処する方法としては、Excelファイルを読み込んだ後、FormatStringプロパティに書式文字列を設定した標準型セルを適用する方法が有効です。
◆サンプルコード(VB.NET)
なお、24時間表記にするためには.NET標準の書式設定文字列と同様に大文字の"H"を使用する必要があります。
参考|カスタム日時書式指定文字列
Service Pack を適用せずに対処する方法としては、Excelファイルを読み込んだ後、FormatStringプロパティに書式文字列を設定した標準型セルを適用する方法が有効です。
◆サンプルコード(VB.NET)
' 標準型セルを定義します。
Dim gnlCellT As New FarPoint.Win.Spread.CellType.GeneralCellType
' 書式文字列を設定します。
gnlCellT.FormatString = "H時mm分"
' 標準型セルをExcel読み込み後のSPREAD上に適用します。
' ※以下のコードでは3列目の3行目以降のセルに適用しています。
FpSpread1.ActiveSheet.Cells(2, 2, FpSpread1.ActiveSheet.RowCount - 1, 2).CellType = gnlCellT
Dim gnlCellT As New FarPoint.Win.Spread.CellType.GeneralCellType
' 書式文字列を設定します。
gnlCellT.FormatString = "H時mm分"
' 標準型セルをExcel読み込み後のSPREAD上に適用します。
' ※以下のコードでは3列目の3行目以降のセルに適用しています。
FpSpread1.ActiveSheet.Cells(2, 2, FpSpread1.ActiveSheet.RowCount - 1, 2).CellType = gnlCellT
なお、24時間表記にするためには.NET標準の書式設定文字列と同様に大文字の"H"を使用する必要があります。
参考|カスタム日時書式指定文字列