Excel上で設定したユーザー定義の日時書式が正しく取り込めない場合がある

文書番号 : 41479     文書種別 : 不具合     登録日 : 2018/01/12     最終更新日 : 2018/06/22
文書を印刷する
対象製品
SPREAD for Windows Forms 8.0J
状況
修正済み
詳細
■事象
ユーザー定義の日付が設定されたExcelファイルをSPREADに読み込んだ時、ExcelとSPREADで表示内容が異なります。
具体的には「h"時"mm"分"」や「h"時"mm"分"ss"秒"」のように、時間を表示するユーザー定義書式が正しく適用されません。

■Excel上の表示とSPREADに取り込んだ結果
Excel上で設定したユーザー定義の日時書式が正しく取り込めない場合がある


■Excel側の書式設定
時間を表示するユーザー定義書式
回避方法
Service Pack 6(v8.0.3511.2008)で修正済み。

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


なお、24時間表記にするためには.NET標準の書式設定文字列と同様に大文字の"H"を使用する必要があります。
参考|カスタム日時書式指定文字列