2012年12月11日火曜日

Excelの日付シリアル値とDateTimeを相互変換


プログラムからエクセル用のデータとして日付(DateTime型)を出力する際に「文字列」で渡してしまうと、表示書式が「時刻」になっている場合、一度編集するまで書式が反映されない。
これは出力された「文字列」が編集を行うことで変換されて「シリアル値」になるからだと思う。
この問題はデータを「文字列」ではなく「シリアル値」として出力することで解決出来る。
日付(DateTime型)とエクセル用の「シリアル値」を相互で変換するには以下のメソッドを使えば良い。

DateTime型からシリアル値に変換
DateTime.ToOADate()

シリアル値からDateTimeに変換
DateTime.FromOADate()


MSDN
DateTime.FromOADate メソッド
DateTime.ToOADate メソッド

0 件のコメント :

コメントを投稿